下面是一个示例代码,用于比较两个字典列表,并将更改的值返回为嵌套字典:
def compare_dicts(original_list, updated_list):
result = {}
for original_dict in original_list:
for updated_dict in updated_list:
if original_dict['key'] == updated_dict['key']:
changes = {}
for key, value in updated_dict.items():
if original_dict.get(key) != value:
changes[key] = value
if changes:
result[original_dict['key']] = changes
return result
# 示例数据
original_list = [{'key': 1, 'value': 'foo'}, {'key': 2, 'value': 'bar'}]
updated_list = [{'key': 1, 'value': 'baz'}, {'key': 3, 'value': 'qux'}]
# 调用函数
changes = compare_dicts(original_list, updated_list)
print(changes)
输出结果为:
{1: {'value': 'baz'}}
在这个示例中,我们首先定义了一个compare_dicts
函数,它接受两个字典列表作为参数。然后,我们创建一个空字典result
来保存更改的值。接下来,我们使用两个嵌套的循环来比较原始列表和更新列表中的字典。如果两个字典具有相同的key
,则我们检查每个键值对是否有更改,并将更改的值保存在一个新的字典changes
中。最后,我们将changes
添加到result
字典中,并返回最终结果。
在这个示例中,original_list
中的{'key': 1, 'value': 'foo'}
与updated_list
中的{'key': 1, 'value': 'baz'}
具有相同的key
,但value
的值发生了更改。因此,我们将{'value': 'baz'}
作为嵌套字典添加到result
中。