2022年 11月 3日

python实现两个字典相加

python实现两个字典相加

最近遇到了需要字典相加的操作,其中这分为两种。如下面例子所示

第一种是键相同的保持第一个字典中的值,键不同的直接添加到新字典中
例如dict1 = {'a': 1, 'b': 2}
dict2 = {'a': 2, 'c': 3}
Out: {'a': 1, 'b': 2, 'c': 3}
  • 1
  • 2
  • 3
  • 4

这种实现方式为

dict1 = {'a': 1, 'b': 2}
dict2 = {'a': 2, 'c': 3}
print({**dict1, **dict2})
  • 1
  • 2
  • 3
还有一种就是如果遇到相同的键,就把对应的值相加。
例如dict1 = {'a': 1, 'b': 2}
dict2 = {'a': 2, 'c': 3}
Out: {'a': 3, 'b': 2, 'c': 3}
  • 1
  • 2
  • 3
  • 4

这种实现方式是

from collections import Counter

dict1 = {'a': 1, 'b': 2}
dict2 = {'a': 2, 'c': 3}
print(dict(Counter(dict1) + Counter(dict2)))
  • 1
  • 2
  • 3
  • 4
  • 5