Python 如何添加两个词典

Python 如何添加两个词典,python,dictionary,counter,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} d1.更新(d2) 这将使用d2的内容更新d1 或 这将合并多个词典的内容并创建一个新词典。用于计数: from collections import Counter d3 = Counter(d1) + Counter(d2) Counter({'A': 9, 'B': 15, 'C': 8, 'E': 2})

如果输入是

d1={'A':5,'B':6,'C':8}
d2={'A':4,'B':9,'E':2}
我希望输出是

d3={'A':9,'B':15,'C':8,'E':2}
d1.更新(d2)
这将使用d2的内容更新d1

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

用于计数:

from collections import Counter

d3 = Counter(d1) + Counter(d2)

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

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

我会这样做:

>>> 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}

这不会根据字典键添加值,这只是附加两个字典,本质上用
d2
的内容替换
d1
。您好,欢迎光临,请阅读如何在此处提问(),然后相应地编辑您的问题。您是否有任何尝试?
>>> 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}