2011-03-31 8 views
5

Python 2.7/3.1は素晴らしいcollections.Counterを導入しました。Pythonの `Counter 'の要素の数を確認する

私の質問:カウンターには「要素出現」がいくつあるのかを数えますか?

私はこれ欲しい:

len(list(counter.elements())) 

しかし短いが。

+0

私は、Python-アイデアに被写体を上げ、レイモンド・ヘッティンガーは 'Counter.elements_count()'メソッドが追加されるかもしれないと述べました。 Pythonの問題:http://bugs.python.org/issue11733 –

答えて

3
sum(counter.itervalues()) 

+3

O(1)のアプローチはありませんか? – corsiKa

+0

いいえ、ありません。 'Counter 'はこの情報を追跡しません。少なくともカウントを合計することは 'len(list(counter.elements()))'よりはるかに効率的です。 –

+0

これは(a)より効率的で、(b)私の元の方法よりも簡潔ですが、それでもなお醜いです。より良い方法がない場合、私は 'Counter.elements_count()'メソッドがあるべきだと提案します。 –

関連する問題