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 24281 Statut Contributeur Ambassadeur 1 584
 
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 24281 Statut Contributeur 1 584
 
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 24281 Statut Contributeur
 
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 24281 Statut Contributeur 1 584 > 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