比较两个字典列表并添加一个关键字,当识别出一个公共关键字时为值



我有两个字典列表。第一个列表将包含比第二个列表多得多的词典。列表1中可能有多达200-300个词典,列表2中可能不超过10-15个词典。

例如,列表1中任何具有与列表2相同的'g': h关键字/值的字典都需要将关键字/值'j': k添加到列表1中。

list1 = [{'a': b, 'c': d, 'e': f, 'g': h}, 
{'a': b, 'c': d, 'e': f, 'g': h}, 
{'a': b, 'c': d, 'e': f, 'g': h}, 
{'a': b, 'c': d, 'e': f, 'g': h}
]
list2 = [{'g': h, 'j': k}]

我很难找到以前这种类型的例子,也无法找到自己的函数。

一个微不足道的实现可能是:

for d1 in list1:
for d2 in list2:
if any(pair in d1.items() for pair in d2.items()):
d1.update(d2)

此转换后list1的值:

[{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h', 'j': 'k'},
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h', 'j': 'k'},
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h', 'j': 'k'},
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h', 'j': 'k'}]

相关内容

最新更新