Bonjour à tous,
je manipule les clés de dictionniares et je suis bloqué quant à un principe de comparaison. Voici de quoi je pars:
Je dispose de dictionnaires contenant des clés (les valeurs n'ont pas d'importances) et j'aimerai pouvoir, pour chaque clé unique, déterminer dans combien de dico elle apparait, par exemple j'aimerai obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 dico1 = {'michel' : '1', 'toto':'1', 'jean':'1'} dico2 = {'michel' : '1', 'toto':'1'} dico3 = {'michel':'1','eric':'1'}
C'est à dire, pour chacun des clés, dans quels dicos apparait'elle. Le soucis est que je ne connais pas à l'avance le nombre de dicos que je vais manipuler (stocker dans une liste de dicos). Là où je bloque c'est que j'arrive à comparer un dictionnaire avec le dictionnaire suivant (i+1), mais je n'arrive pas à faire la comparaison sur l'ensemble des dicos. Concretement je ne fais que des comparaisons 2 à 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 michel dico1 dico2 dico3 toto dico1 dico2 jean dico1 eric dico3
Voici mon code :
Ce code fonctionne pour des comparaisons 2 à 2, mais comment faire pour tester la clé de mon dico 1 avec tous les autres dicos ? Puis le dico2 avec tous les autres dicos etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 stockage = [] #stockage est une liste qui contient toutes les clés que j'écris, grâce à ca je peux tester si j'ai deja écris la clé que je traite for comp,i in enumerate(liste_de_dicos[:-1]): # la dernière valeur de ma liste de dico est une valeur nulle, je peux donc réaliser des incrémentations en m'arrétant à l'avant dernière valeur de la liste for cle,valeur in i.items(): # je parse chacun de mes dicos (i) if cle in stockage: #si la clé est dans la liste de stockage (donc déjà écrite), alors je passe pass else: if cle in liste_de_dicos[comp+1]: # je test la clé du dico i avec la clé du dico i+1 #j'écris ma clé et ses 2 dicos associés.... stockage.append(cle) #ajout de la clé à ma liste else: #j'écris ma clé et son dico stockage.append(cle) # ajout de la clé à la liste
Merci à vous
Partager