python合并两个多级字典,相同key时,值组成列表
时间: 2024-05-08 20:15:45 浏览: 305
python实现两个字典合并,两个list合并
可以使用递归函数实现合并多级字典,并将相同key的值组成列表。以下是一个示例代码:
```
def merge_dicts(dict1, dict2):
"""
合并两个多级字典,相同key时,值组成列表
"""
# 如果dict1和dict2都是字典类型
if isinstance(dict1, dict) and isinstance(dict2, dict):
# 遍历dict2的所有键值对
for key, value in dict2.items():
# 如果dict1中已有key,且value是列表类型
if key in dict1 and isinstance(dict1[key], list):
# 将value添加到dict1[key]中
dict1[key].append(value)
# 如果dict1中已有key,但value不是列表类型
elif key in dict1:
# 将两个值组成列表
dict1[key] = [dict1[key], value]
# 如果dict1中没有key,则直接将键值对添加到dict1中
else:
dict1[key] = value
# 递归合并dict1[key]和dict2[key]
merge_dicts(dict1[key], value)
return dict1
```
使用示例:
```
dict1 = {
"a": {
"b": 1,
"c": {
"d": 2
}
},
"e": 3
}
dict2 = {
"a": {
"b": 4,
"c": {
"d": 5
}
},
"f": 6
}
merged_dict = merge_dicts(dict1, dict2)
print(merged_dict)
```
输出结果:
```
{
"a": {
"b": [1, 4],
"c": {
"d": [2, 5]
}
},
"e": 3,
"f": 6
}
```
阅读全文