2011-03-31 12 views
5

Python 2.7/3.1 przedstawił niesamowitą collections.Counter.Sprawdzanie liczby elementów w Pythonie `Counter`

Moje pytanie: Jak policzyć liczbę "wyglądów elementów" licznika?

Chcę to:

len(list(counter.elements())) 

ale krótsze.

+0

że podniosła obiektu na Pythona idei i Raymond Hettinger powiedział 'Counter.elements_count()' sposób mogą być dodawane. Problem w języku Python: http://bugs.python.org/issue11733 –

Odpowiedz

3
sum(counter.itervalues()) 

+3

Nie ma podejścia O (1)? – corsiKa

+0

Nie, nie ma. 'Counter' nie śledzi tych informacji. Przynajmniej sumowanie zliczeń jest znacznie wydajniejsze niż 'len (list (counter.elements()))'. –

+0

Jest to (a) bardziej wydajne i (b) bardziej zwięzłe niż moja oryginalna metoda, ale wciąż jest brzydkie. Jeśli nie ma lepszego sposobu, sugeruję, że powinna istnieć metoda 'Counter.elements_count()'. –

Powiązane problemy