Appartenance d'une clé à plusieurs dictionnaires
Bonjour à tous,
je manipule les clés de dictionniares et je suis bloqué quant à un principe de comparaison. Voici de quoi je pars:
Code:
1 2 3
| dico1 = {'michel' : '1', 'toto':'1', 'jean':'1'}
dico2 = {'michel' : '1', 'toto':'1'}
dico3 = {'michel':'1','eric':'1'} |
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:
1 2 3 4
| michel dico1 dico2 dico3
toto dico1 dico2
jean dico1
eric dico3 |
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.
Voici mon code :
Code:
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 |
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...
Merci à vous