-2
votes

Comparez un élément de liste avec une clé de dictionnaire et affichez la valeur de la clé si l'élément existe dans le dictionnaire

Exemple de code:

['Mango', 'Pear']

Résultat attendu:

my_dict = {'ABC':'Apple','DEF':'Mango','GHI':'Pear','JKL':'Orange','MNO':'Plum'}
lst_x =  ['DEF','GHI']


0 commentaires

4 Réponses :


1
votes

Vous pouvez utiliser une simple boucle, demander s'il y a une clé avec la même valeur et l'imprimer, par exemple:

my_dict = {'ABC':'Apple','DEF':'Mango','GHI':'Pear','JKL':'Orange','MNO':'Plum'}
lst = ['ABC','DEF','GHI','JKL','MNO']

for key in lst:
    if key in my_dict.keys():
        print(key, '->' , my_dict[key])

>>> ABC -> Apple
>>> DEF -> Mango
>>> GHI -> Pear
>>> JKL -> Orange
>>> MNO -> Plum


0 commentaires

-1
votes

Personnellement, je ne crois pas qu'il faille donner des réponses directes, je vais donc vous donner un indice:

// for x in lst: 
//   if x in dictionary then
//     lst_x.append(x)

Je crois que cela devrait vous suffire pour comprendre le reste.


0 commentaires

0
votes

Une approche consisterait à utiliser une list comprehension pour construire la liste demandée.
Essentiellement, nous parcourons la list dans la boucle externe, et le dictionary dans la boucle interne, puis nous comparons la valeur de la list avec la key du dictionary , et si nous avons une correspondance, nous enregistrons la valeur de la key associée dans la nouvelle liste de sortie.

Cet extrait de code ci-dessous fonctionne comme décrit ci-dessus:

['Mango', 'Pear']

Lorsqu'il est exécuté, il imprime:

my_dict = {'ABC':'Apple','DEF':'Mango','GHI':'Pear','JKL':'Orange','MNO':'Plum'}
lst_x = ['DEF','GHI']

out = [value for element in lst_x for key, value in my_dict.items() if element == key]
print(out)


0 commentaires

3
votes

Vous pouvez récupérer plusieurs clés à la fois, en utilisant operator.itemgetter :

>>> res

('Mango', 'Pear')

Les sorties:

from operator import itemgetter

my_dict = {'ABC':'Apple','DEF':'Mango','GHI':'Pear','JKL':'Orange','MNO':'Plum'}

lst_x = ['DEF','GHI']
# in case, if there's a chance, that lst_x would get some of the keys, that are not in my_dict - add the below line:
# lst_x=set(lst_x).intersection(set(my_dict.keys()))
res=itemgetter(*lst_x)(my_dict)


0 commentaires