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)