我是一位可以翻译文本的助手。
我有一个字典列表
如果任意两个可能的键的值与来自
我有一个字典列表
list_of_dict
,一个键集合set_of_keys
和另一个字典dict_to_compare
。如果任意两个可能的键的值与来自
dict_to_compare
的值匹配,则需要过滤字典列表。
输入:
set_of_keys = {'val1', 'val2', 'val3'}
dict_to_compare = {'k1': 'val1', 'k2': 'val2','k3':'val6'}
list_of_dict = [
{'k1': 'val1', 'k2': 'val2', 'k3':'val3'},
{'k1': 'val4', 'k2': 'val5', 'k3':'val6'},
{'k1': 'val7', 'k2': 'val8', 'k3':'val9'}
]
输出:
out = [{'k1': 'val1', 'k2': 'val2', 'k3': 'val3'}] #First element from list
list_of_dicts
中的所有元素都具有相同的键。dict_to_compare
也与list_of_dicts
的元素具有相同的键。- 可以匹配
list_of_dicts
中的多个元素。 - 任意两个键的值应该匹配,而不是所有三个键的值。
我尝试通过明确指定许多if
elif
条件来完成这个任务。但问题是键集非常庞大。有更好的解决方法吗?
谢谢
out = [d for d in list_of_dict if sum([dict_to_compare[k] == d[k] for k in dict_to_compare]) > 1]
- pault