我需要通过匹配列表中的项来从字典中查找包含值的键。我的方法如下......
dict1 = {'a':[1,3,4], "b": [3,4,6], 'c': [88,22,1]}
list1 = [1,3]
links = []
dict2 = {}
for key, value in dict1.iteritems():
for link in list1:
if link in dict1[key]:
links.append(link)
temp = links
dict2[key]=temp
links[:]=[]
print dict2
我想要的输出是
{'a': [1,3], 'c': 1, 'b': 3}
但是上面的代码我得到了......
{'a': [], 'c': [], 'b': []}
有人可以解释我哪里出错了。任何帮助都将受到高度赞赏
答案 0 :(得分:2)
单行:
dict1 = {'a':[1,3,4], "b": [3,4,6], 'c': [88,22,1]}
list1 = [1,3]
res = {key : list(set(value) & set(list1)) for key, value in dict1.items()}
set1=set(list1)
可以预先计算效率。