【问题标题】:How to add two dictionaries [duplicate]如何添加两个字典[重复]
【发布时间】:2018-10-16 07:36:21
【问题描述】:

如果输入是

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

我希望输出是

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

【问题讨论】:

标签: python dictionary counter


【解决方案1】:

使用collections.Counter 进行计数:

from collections import Counter

d3 = Counter(d1) + Counter(d2)

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

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

【讨论】:

    【解决方案2】:

    我会这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2020-01-03
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      相关资源
      最近更新 更多