我正在寻找 python 中的计数器列表的总和。例如求和:
counter_list = [Counter({"a":1, "b":2}), Counter({"b":3, "c":4})]
to give Counter({'b': 5, 'c': 4, 'a': 1})
我可以得到以下代码来进行求和:
counter_master = Counter()
for element in counter_list:
counter_master = counter_master + element
但我很困惑为什么counter_master = sum(counter_list)
结果出现错误TypeError: unsupported operand type(s) for +: 'int' and 'Counter'
?既然可以将计数器相加,为什么不能对它们求和呢?
The sum https://docs.python.org/3/library/functions.html#sum函数有可选的start参数默认为 0。引用链接页面:
sum(iterable[, start])
Sums start和一个项目iterable从左到右并返回
总数
Set start清空)Counter
对象以避免TypeError
:
In [5]: sum(counter_list, Counter())
Out[5]: Counter({'b': 5, 'c': 4, 'a': 1})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)