def merge_dictionaries(dict1, dict2):
merged_dictionary = {}
for key in dict1:
if key in dict2:
new_value = dict1[key] + dict2[key]
else:
new_value = dict1[key]
merged_dictionary[key] = new_value
for key in dict2:
if key not in merged_dictionary:
merged_dictionary[key] = dict2[key]
return merged_dictionary
Here is another approach but it is quite lengthy!
d1 = {'a': 5, 'b': 7}
d2 = {'a': 3, 'c': 1}
d={}
for i,j in d1.items():
for k,l in d2.items():
if i==k:
c={i:j+l}
d.update(c)
for i,j in d1.items():
if i not in d:
d.update({i:j})
for m,n in d2.items():
if m not in d:
d.update({m:n})
6条答案
按热度按时间gpfsuwkq1#
这是一个一行程序,可以做到这一点:
注意
set(dict1) | set(dict2)
是两个字典的键的集合.如果键存在,dict1.get(key, 0)
返回dict1[key]
,否则返回0
.这在较新的python版本上有效:
pprl5pva2#
你可以使用
collections.Counter
来实现加法+
:如果你真的想得到dict的结果,你可以在以后把它转换回来:
du7egjpx3#
下面是一个很好的函数:
通过书面形式:
结果将是:
js81xvg64#
一个快速的字典理解,可以在任何接受+操作符的类上工作。性能可能不是最佳的。
nc1teljy5#
zvokhttg6#
我觉得这简单多了。
输出:
{'a': 7, 'b': 12}