示例代码:
my_dict = {'ABC':'Apple','DEF':'Mango','GHI':'Pear','JKL':'Orange','MNO':'Plum'}
lst_x = ['DEF','GHI']
预期结果:
['Mango', 'Pear']
一种方法是使用list comprehension
构造请求的列表。本质上,我们遍历外循环中的list
,并遍历内循环中的dictionary
,然后将list
值与key
中的dictionary
进行比较,如果有匹配项,然后将关联的key
的值保存在新的输出列表中。
下面的代码段如上所述工作:
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)
运行时将打印:
['Mango', 'Pear']
您可以使用operator.itemgetter
一次检索多个键:
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)
输出:
>>> res
('Mango', 'Pear')
您可以使用一个简单的循环,询问是否有一个具有相同值的键并进行打印,例如:
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
我个人不相信直接给出答案,所以我会给你一个提示:
// for x in lst:
// if x in dictionary then
// lst_x.append(x)
我相信这足以让您找出其余的内容。