Comparer deux dictionnaires

Résolu/Fermé
Fredlesarde - 4 mai 2021 à 18:21
 Fredlesarde - 4 mai 2021 à 21:11
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
4 mai 2021 à 19:22
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
4 mai 2021 à 19:26
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
4 mai 2021 à 20:52
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Fredlesarde
Modifié le 4 mai 2021 à 21:09
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
C'est génial !! merci pour ton aide !
0