Problème suppression information dico
Résolu/Fermé
worox
Messages postés
23
Date d'inscription
mercredi 13 avril 2022
Statut
Membre
Dernière intervention
1 septembre 2022
-
Modifié le 12 août 2022 à 13:26
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 16 août 2022 à 14:02
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 16 août 2022 à 14:02
A voir également:
- Problème suppression information dico
- Forcer suppression fichier - Guide
- Information d'identification réseau - Guide
- Suppression page word - Guide
- Suppression cookies - Guide
- Nous restons à votre disposition pour tout complément d'information - Forum Bureautique
2 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
12 août 2022 à 10:03
12 août 2022 à 10:03
Bonjour
Dans un dictionnaire les clés sont uniques
Donc à chaque personne on écrase la précédente
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
12 août 2022 à 13:37
12 août 2022 à 13:37
Bonjour,
Plusieurs choses :
- Quand tu rédiges un message, veille à soigner l'orthographe, à ne pas utiliser d'abréviations et à faire des phrases complètes (j'ai réécrit ton message #1).
- Quand tu as un problème, donne un bout de code minimal qui met ton problème en évidence.
Comme Phil l'indique, pour une clé donnée du dictionnaire personne, la fonction set_profil telle que tu l'as écrite écrase les informations précédentes (s'il y en avait).
Pour moi les problèmes sont multiples :
- Plutôt que d'utiliser un dictionnaire de dictionnaire, tu devrais utiliser :
- soit une liste de dictionnaire (chaque dictionnaire correspond à une personne)
- soit un dictionnaire de dictionnaire (le dictionnaire principal a pour clé l'identifiant de la personne et lui associe en donnée le dictionnaire contenant les détails de son profil) ; dans ce cas, la clé peut être construire à la volée à partir d'un ou plusieurs attributs du profil à ajouter/modifier (généralement, le login).
- Quelle que soit la structure retenue, tu pourrais alors obtenir directement le nombre d'inscrits avec len(personnes), ce qui t'éviterait d'avoir recours à une variable globale (qui n'est jamais une bonne idée).
Exemple :
personnes = dict() def ajouter(personnes, personne): pseudo = personne["pseudo"] if pseudo in personnes.keys(): print("pseudo déjà utilisé!") else: personnes[pseudo] = personne def modifier(personnes, personne): pseudo = personne["pseudo"] if pseudo not in personnes.keys(): print("pseudo inconnu!") else: personnes[pseudo] = personne def get_num_inscrits(personnes): return len(personnes) p1 = { "pseudo" : "toto", # ... } p2 = { "pseudo" : "tata", # ... } ajouter(personnes, p1) ajouter(personnes, p2) print(get_num_inscrits(personnes))
Bonne chance
worox
Messages postés
23
Date d'inscription
mercredi 13 avril 2022
Statut
Membre
Dernière intervention
1 septembre 2022
9
13 août 2022 à 10:53
13 août 2022 à 10:53
Merci beaucoup de ton message et de tes idées.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
>
Utilisateur anonyme
16 août 2022 à 14:02
16 août 2022 à 14:02
Tu peux passer par une classe dédiée plutôt qu'utiliser des dictionnaires, mais ça ne change pas grand chose par rapport à une liste de dictionnaires.
12 août 2022 à 12:44
Donc l'idée serait de créer une liste pour chaque caractére ?