汇总python中的计数器列表

kyr*_*nia 20 python counter python-2.7

我想在python中总结一个计数器列表.例如总结:

counter_list = [Counter({"a":1, "b":2}), Counter({"b":3, "c":4})]
Run Code Online (Sandbox Code Playgroud)

Counter({'b': 5, 'c': 4, 'a': 1})

我可以得到以下代码来进行求和:

counter_master = Counter()
for element in counter_list:
    counter_master = counter_master + element
Run Code Online (Sandbox Code Playgroud)

但我很困惑,为什么counter_master = sum(counter_list)导致错误TypeError: unsupported operand type(s) for +: 'int' and 'Counter'?鉴于可以将计数器添加到一起,为什么不能将它们相加?

vau*_*tah 41

sum函数具有可选的start参数,默认为0.引用链接页面:

sum(iterable[, start])

Sums 从左到右开始可迭代的项目并返回总数

设置start to(empty)Counter对象以避免TypeError:

In [5]: sum(counter_list, Counter())
Out[5]: Counter({'b': 5, 'c': 4, 'a': 1})
Run Code Online (Sandbox Code Playgroud)