python 字典操作 如何将两个字典合并


d1 = {'a': 1, 'b': 'foo', 'c': 400}
d2 = {'a': 3, 'b': 200, 'd': 400}
d3 = {}
for k, v in d1.items():
    for k1, v1 in d2.items():
        if k == k1:
            d3[k] = v, v1
print(d3)

输出结果
{'a': (1, 3), 'b': ('foo', 200)}
本来想直接写
else:
d3[k] = v1
后来发现不行

请问 怎么样才能让两个字典合并在一起并保持原有的值呢?

理想结果: {'a': (1, 3), 'b': ('foo', 200),'c':400,'d':400}

这样操作,可以合并多个字典

>>> d1 = {'a': 1, 'b': 'foo', 'c': 400}
>>> d2 = {'a': 3, 'b': 200, 'd': 400}
>>> d3 = d1.copy()
>>> for k,v in d2.items():
    if k in d3:
        d3[k] = d3[k]+(v,) if isinstance(d3[k],tuple) else (d3[k],v)
    else:
        d3[k] = v

        
>>> d3
{'a': (1, 3), 'b': ('foo', 200), 'c': 400, 'd': 400}

如果对你有帮助,望采纳,谢谢!

dict1 = {'key1': 1, 'key2': 2, 'key3': 7}
dict2 = {'key1': 3, 'key2': 9, 'key4': 10}
# dict4用来存储合并后的字典
dict4 = {}
# 求出俩个字典不相同的key集合,下面是做的集合的运算,不清楚的百度一下
not_common_keys = (dict1.keys() | dict2.keys()) - (dict1.keys() & dict2.keys())
print(not_common_keys)
print('------------分割线-----------')
# **表示传入键值对


def main(**dict3):
    for key in dict3.keys():
        if key in not_common_keys:
            dict4[key] = dict3[key]
        else:
            dict4.setdefault(key, []).append(dict3[key])


main(**dict1)
main(**dict2)
print(dict4)