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)