Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2中计数器的所有值总和_Python_Python 2.7_Counter - Fatal编程技术网

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())