如何添加两个字典

时间:2018-10-16 07:36:21

标签: python dictionary counter

如果输入为

d1={'A':5,'B':6,'C':8}
d2={'A':4,'B':9,'E':2}

我希望输出为

d3={'A':9,'B':15,'C':8,'E':2}

3 个答案:

答案 0 :(得分:0)

使用collections.Counter进行计数:

from collections import Counter

d3 = Counter(d1) + Counter(d2)

Counter({'A': 9, 'B': 15, 'C': 8, 'E': 2})

由于Counterdict的子类,您可能不希望将其显式转换为常规dict。有一些限制,即Counter仅适用于正整数。

答案 1 :(得分:-1)

我会这样:

>>> fst = {'A': 5, 'B': 6, 'C': 8}
>>> snd = {'A': 4, 'B': 9, 'E': 2}
>>> out = {k: fst[k] + snd[k] for k in fst.keys() & snd.keys()}
>>> out.update({k: fst[k] if k in fst else snd[k] for k in fst.keys() ^ snd.keys()})
>>> out
{'A': 9, 'B': 15, 'C': 8, 'E': 2}

答案 2 :(得分:-3)

d1.update(d2) 这将用d2的内容​​更新d1

d1={'A':5,'B':6,'C':8} 
d2={'A':4,'B':9,'E':2}
d3 = {**d1, **d2}
print(d3)

这将合并多个词典的内容并创建一个新词典。