将两个字典合并在一起,同时保持相同的结构但合并值,可以使用递归的方式来实现。以下是一个示例代码:
def merge_dicts(dict1, dict2):
merged_dict = {}
for key in dict1:
if key in dict2:
if isinstance(dict1[key], dict) and isinstance(dict2[key], dict):
merged_dict[key] = merge_dicts(dict1[key], dict2[key])
else:
merged_dict[key] = [dict1[key], dict2[key]]
else:
merged_dict[key] = dict1[key]
for key in dict2:
if key not in dict1:
merged_dict[key] = dict2[key]
return merged_dict
这个函数接受两个字典作为参数,然后逐个遍历字典的键。如果键在两个字典中都存在,且对应的值都是字典类型,那么递归调用 merge_dicts 函数将这两个字典进行合并。如果键在两个字典中都存在,但对应的值不是字典类型,那么将这两个值合并为一个列表。如果键只在其中一个字典中存在,那么直接将该键值对添加到合并后的字典中。
这种方法可以保持相同的结构,同时合并相同键的值。如果两个字典中有相同的键,但对应的值都是字典类型,那么会递归地将这两个字典进行合并。如果对应的值不是字典类型,那么会将这两个值合并为一个列表。
这个方法适用于任意深度的字典结构,并且可以处理多层嵌套的情况。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云