我需要创建一个新字典,比较 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)}
最佳答案
这可以使用字典理解来实现。
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)}
关于python - 如何根据值与列表过滤字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380994/