Comparer deux dictionnaires

Résolu
Fredlesarde -  
 Fredlesarde -
Bonjour,

Je voudrais lister les clés d'un dictionnaire d1, puis les comparer avec les valeurs d'un autre dictionnaire d2 et enfin établir une liste des clés de d2 correspondantes avec les valeurs de d1.. Exemple:

d1 = {"332P200005":"E34-789", "332P200006":"E34-788",  "332P200007":"E34-785", "332P200008":"E34-705" }

d2 = {"E34-789":"1", "E34-788":"1", "E34-700":"1", "E34-702":"1", "E34-703":"1", "E34-704":"1", "E34-705":"1"}


Je voudrais une liste ou autre contenant les clés de d1 qui ont pour valeur la clé d2.
par exemple je vois dans d2 la clé "E34-789" qui est bien présente dans une des valeurs de d1.
en revanche la clé "E34-704" dans d2 n'est pas présente dans les valeurs d1. Donc la clé (d1) correspondante ne m'intéresse pas.

J'espère avoir été assez clair, merci pour votre aide.


Configuration: Windows / Firefox 88.0
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 583
 
bonjour,
as-tu une question?
je pense que ceci t'aidera: http://www.w3big.com/fr/python/att-dictionary-has_key.html
1
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 583
 
ce serait plus clair si tu montrais la réponse que tu attends pour l'exemple.

tu écris "la clé "E34-704" dans d2 n'est pas présente dans les valeurs d1. Donc la clé (d1) correspondante ne m'intéresse pas" quelle est la clé correspondante?
0
Fredlesarde > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
je voudrais en sortie:

liste = [332P200005,332P200006,332P200008] 

# dans cette liste, ces valeurs font bien partie d'au moins une des clés dans d2


# dans d1, la dernière clé 332P200007 ne m'intéresse pas car # sa valeur n'apparait pas dans une des clés d2


Je ne sais pas si c'est plus clair..
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 583 > Fredlesarde
 
cela devient plus correct.
un exemple:
def y(dun,ddeux):
    r=[]
    for k1 in dun:
        if dun[k1] in ddeux:
            r.append(k1)
    return r
dd1 = {"332P200005":"E34-789", "332P200006":"E34-788",  "332P200007":"E34-785", "332P200008":"E34-705" }
dd2 = {"E34-789":"1", "E34-788":"1", "E34-700":"1", "E34-702":"1", "E34-703":"1", "E34-704":"1", "E34-705":"1"}
print(y(dd1,dd2))
0
Fredlesarde
 
C'est génial !! merci pour ton aide !
0