【发布时间】:2013-09-06 18:15:55
【问题描述】:
确定collections.Counter 对象中所有计数总和的最佳方法是什么?
我试过了:
sum(Counter([1,2,3,4,5,1,2,1,6]))
但这给出的是 21 而不是 9?
【问题讨论】:
-
它为您提供唯一键的总和。
标签: python python-3.x counter
确定collections.Counter 对象中所有计数总和的最佳方法是什么?
我试过了:
sum(Counter([1,2,3,4,5,1,2,1,6]))
但这给出的是 21 而不是 9?
【问题讨论】:
标签: python python-3.x counter
从Python 3.10 开始,Counter 被赋予一个提供计数总和的total() 函数:
from collections import Counter
Counter([1,2,3,4,5,1,2,1,6]).total()
# 9
【讨论】:
您拥有的代码将键相加(即列表中的唯一值:1+2+3+4+5+6=21)。
要将计数相加,请使用:
In [4]: sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Out[4]: 9
documentation 中的“常见模式”下提到了这个成语。
【讨论】:
sum(Counter([1,2,3,4,5,1,2,1,6]).values())
【讨论】:
对值求和:
sum(some_counter.values())
演示:
>>> from collections import Counter
>>> c = Counter([1,2,3,4,5,1,2,1,6])
>>> sum(c.values())
9
【讨论】: