Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 求两个collections.Counter()对象内容的和_Python_Counter - Fatal编程技术网

Python 求两个collections.Counter()对象内容的和

Python 求两个collections.Counter()对象内容的和,python,counter,Python,Counter,我正在使用collections.Counter()counters。我想以一种有意义的方式将其中两项结合起来 假设我有两个计数器 Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5}) 及 我试图以以下方式结束: Counter({'menu': 21, 'good': 16, 'happy': 10,'bar': 8}) 我如何才能做到这一点?您只需添加它们: >>> from collections impor

我正在使用
collections.Counter()
counters。我想以一种有意义的方式将其中两项结合起来

假设我有两个计数器

Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5})

我试图以以下方式结束:

Counter({'menu': 21, 'good': 16, 'happy': 10,'bar': 8})

我如何才能做到这一点?

您只需添加它们:

>>> from collections import Counter
>>> a = Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5})
>>> b = Counter({'menu': 1, 'good': 1, 'bar': 3})
>>> a + b
Counter({'menu': 21, 'good': 16, 'happy': 10, 'bar': 8})
从:

提供了几种数学运算,用于组合计数器对象以生成多集(计数大于零的计数器)。加法和减法通过增加或减少相应元素的计数来组合计数器


请注意,如果您想通过修改
计数器而不是创建一个新的计数器来节省内存,您可以执行
a.update(b)
b.update(a)

只需对它们求和即可。更具体地说,
sum(counters,Counter())
确保求和算法以计数器基数而不是简单的数字基数开始。
>>> from collections import Counter
>>> a = Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5})
>>> b = Counter({'menu': 1, 'good': 1, 'bar': 3})
>>> a + b
Counter({'menu': 21, 'good': 16, 'happy': 10, 'bar': 8})