Exemple de code:
['Mango', 'Pear']
Résultat attendu:
my_dict = {'ABC':'Apple','DEF':'Mango','GHI':'Pear','JKL':'Orange','MNO':'Plum'} lst_x = ['DEF','GHI']
4 Réponses :
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
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.
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)
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)