Python 2中计数器的所有值总和
我有一个来自Python 2中计数器的所有值总和,python,python-2.7,counter,Python,Python 2.7,Counter,我有一个来自集合模块的计数器。将所有计数相加的最佳方法是什么 例如,我有: my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}) 并希望返回值7。据我所知,函数sum用于将多个计数器相加 因为您的问题是关于Python2.7的,所以您应该使用如下内容 sum(my_counter.itervalues()) 在Python3.x上,它实际上相当于 sum(my_counter.values()) 在这两种情况下,您都会延迟计算总和,
集合
模块的计数器。将所有计数相加的最佳方法是什么
例如,我有:
my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
并希望返回值
7
。据我所知,函数sum
用于将多个计数器相加 因为您的问题是关于Python2.7的,所以您应该使用如下内容
sum(my_counter.itervalues())
在Python3.x上,它实际上相当于
sum(my_counter.values())
在这两种情况下,您都会延迟计算总和,并避免昂贵的中间数据结构。请注意在Py2.x上使用Python3.x变量,因为在后一种情况下,my_counter.values()
计算整个计数列表,并在计算总和之前将其存储在内存中
c = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
len( list(c.elements()) )
使用计数器对象的常见模式:sum(c.values())#所有计数的总数 来源:来源:
如果您有计数器的源代码(例如,
my_counter=counter(source)
),您可以在Python 3.6.1中正确地执行len(source)
!
>>> from collections import Counter
>>> sum(Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}).values())
7
from collections import Counter
c = Counter([1,2,3,4,5,1,2,1,6])
sum(c.values())