我需要创建一个新的字典,比较dict1和list1中的匹配值,并将dict1中的键和list1中的值传递给新字典。
dict1 = {'F0': (117, 118),
'F1': (227, 118),
'F2': (337, 118),
'F3': (447, 118),
'F4': (557, 118)}
list1 = [(117, 118), (447, 228), (227, 448), (557, 558),(557, 118)]
result:
dict2 = {'F0': (117, 118),'F4': (557, 118)}
答案 0 :(得分:4)
这可以使用词典理解来实现。
list1_set = set(list1)
res = {k: v for k, v in dict1.items() if v in list1_set}
list1
被转换为理解中的O(1)查找集。这是可能的,因为list1
的元素是元组,因此可以使用。
结果:
{'F0': (117, 118), 'F4': (557, 118)}
答案 1 :(得分:0)
dict1 = {'F0': (117, 118),
'F1': (227, 118),
'F2': (337, 118),
'F3': (447, 118),
'F4': (557, 118)}
list1 = [(117, 118), (447, 228), (227, 448), (557, 558),(557, 118)]
print {k:v for k,v in dict1.items() if v in list1} #python dict comprehension
<强>输出:强>
{'F0': (117, 118), 'F4': (557, 118)}