【问题标题】:Size of Python CounterPython 计数器的大小
【发布时间】:2013-07-28 00:45:21
【问题描述】:

我想知道 Python 计数器中有多少项,包括重复项。我试过len,它告诉我唯一项目的数量:

>>> c = Counter(x=3,y=7)
>>> len(c)
2

我拥有的最好的是sum(c.itervalues()),我认为这并不可怕,但我希望 Counter 对象缓存该值,以便我可以在 O(1) 中访问它。

【问题讨论】:

    标签: python counter


    【解决方案1】:

    Counter docs 将您的sum(c.itervalues()) 答案作为“使用 Counter 对象的常用模式”部分中的标准模式,所以我怀疑还有什么更好的。

    与字典中的其他 iter* 方法一样,在 Python 3 中,itervaluesvalues 替换。

    【讨论】:

      【解决方案2】:

      你可以浏览the source code; Counter 中没有记录项目数的缓存值。所以你能做的最好的就是sum(c.itervalues())

      In [108]: import collections
      
      In [109]: c = collections.Counter(x=3, y=7)
      
      In [110]: sum(c.itervalues())
      Out[110]: 10
      

      【讨论】:

      • 对于python3+ sum(c.values())
      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 2010-09-07
      • 2010-10-17
      相关资源
      最近更新 更多