【发布时间】:2021-02-12 11:44:55
【问题描述】:
如果字典中的值与列表的元素匹配,我想返回给定字典的所有键。假设我有以下字典:
my_dict = {'flower1': ['blue'],
'flower2': ['red', 'green', 'blue'],
'flower3': ['yellow'],
'flower4': ['blue', 'black', 'cyan']}
现在我想将字典中的值与列表中的以下元素进行匹配:
my_lst = ['black',
'red',
'blue',
'yellow',
'green',
'purple',
'brown',
'cyan']
我的目标是获得如下字典:
result_dict = {'black': ['flower4'],
'red': ['flower2'],
'blue': ['flower1', 'flower2', 'flower4'],
'yellow': ['flower3']
'green': ['flower2'],
'purple': [],
'brown': [],
'cyan': []}
现在我尝试了一个简单的列表推导,它工作正常,但只返回一个简单的无序列表,如:
In[14]: [key for key, value in my_dict.items() for i in range(0, len(my_lst)) if my_lst[i] in value]
Out[14]:['flower1',
'flower2',
'flower2',
'flower2',
'flower3',
'flower4',
'flower4',
'flower4']
执行此类操作的最佳方法是什么?我无法理解它,任何帮助将不胜感激。
【问题讨论】:
标签: python dictionary key-value