我想知道Python計數器中有多少項,包括重複項。我試圖len
,它告訴我的唯一項目的數量:Python計數器的大小
>>> c = Counter(x=3,y=7)
>>> len(c)
2
我有最好的是sum(c.itervalues())
,我想並不可怕,但我希望計數器對象緩存值,以便我可以訪問它O(1)。
我想知道Python計數器中有多少項,包括重複項。我試圖len
,它告訴我的唯一項目的數量:Python計數器的大小
>>> c = Counter(x=3,y=7)
>>> len(c)
2
我有最好的是sum(c.itervalues())
,我想並不可怕,但我希望計數器對象緩存值,以便我可以訪問它O(1)。
的Counter docs給你sum(c.itervalues())
答案這個在標準模式「通用模式與櫃檯工作對象」一節,所以我懷疑有更好的東西。
與其他iter*
字典上的方法一樣,Python 3中的itervalues
被values
替代。
您可以通過the source code查看;沒有緩存值記錄計數器中的項目數。所以你可以做的最好的是sum(c.itervalues())
。
In [108]: import collections
In [109]: c = collections.Counter(x=3, y=7)
In [110]: sum(c.itervalues())
Out[110]: 10