【问题标题】:Sum of all counts in a collections.Countercollections.Counter 中所有计数的总和
【发布时间】: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


【解决方案1】:

Python 3.10 开始,Counter 被赋予一个提供计数总和的total() 函数:

from collections import Counter

Counter([1,2,3,4,5,1,2,1,6]).total()
# 9

【讨论】:

    【解决方案2】:

    您拥有的代码将键相加(即列表中的唯一值: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 中的“常见模式”下提到了这个成语。

    【讨论】:

      【解决方案3】:
      sum(Counter([1,2,3,4,5,1,2,1,6]).values())
      

      【讨论】:

        【解决方案4】:

        对值求和:

        sum(some_counter.values())
        

        演示:

        >>> from collections import Counter
        >>> c = Counter([1,2,3,4,5,1,2,1,6])
        >>> sum(c.values())
        9
        

        【讨论】:

          猜你喜欢
          • 2018-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-26
          • 2023-04-03
          • 1970-01-01
          • 2013-08-14
          • 2011-09-02
          相关资源
          最近更新 更多