我有一个来自collections
模块的计数器。总结所有计数的最佳方法是什么?
例如,我有:
my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
并希望返回值7
。据我所知,函数sum
用于将多个计数器一起添加。
答案 0 :(得分:10)
由于你的问题是关于Python 2.7的,你应该使用类似的东西
sum(my_counter.itervalues())
在Python 3.x上实际上等同于
sum(my_counter.values())
在这两种情况下,您都会懒惰地评估总和并避免使用昂贵的中间数据结构。谨防在Py 2.x上使用Python 3.x变体,因为在后一种情况下my_counter.values()
计算整个计数列表并在计算总和之前将其存储在内存中。
答案 1 :(得分:4)
>>> from collections import Counter
>>> sum(Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}).values())
7
使用Counter对象的常用模式:sum(c.values())
#所有计数总数
答案 2 :(得分:0)
c = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
len( list(c.elements()) )
答案 3 :(得分:0)
来自here:
from collections import Counter
c = Counter([1,2,3,4,5,1,2,1,6])
sum(c.values())