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 32810 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 décembre 2023 - 16 août 2022 à 14:02
mamiemando Messages postés 32810 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 décembre 2023 - 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 compte instagram - Guide
- Suppression page word - Guide
- Suppression compte facebook - Guide
2 réponses
Phil_1857
Messages postés
1807
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
6 décembre 2023
167
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
32810
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 décembre 2023
7 691
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.
Whismeril
Messages postés
18814
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2023
917
13 août 2022 à 11:13
13 août 2022 à 11:13
Bonjour,
une liste de classe ne serait elle pas un peu plus simple à utiliser?
mamiemando
Messages postés
32810
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 décembre 2023
7 691
>
Whismeril
Messages postés
18814
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2023
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 ?