2011-03-31 20 views
5

Python 2.7/3.1 introdujo el impresionante collections.Counter.Comprobando el número de elementos en 'Contador' de Python

Mi pregunta: ¿Cómo puedo contar cuántas "apariencias de elementos" tiene un contador?

quiero esto:

len(list(counter.elements())) 

pero más corto.

+0

I planteó el tema en Python-ideas y Raymond Hettinger dicho podría añadirse un método 'Counter.elements_count()'. Problema de Python: http://bugs.python.org/issue11733 –

Respuesta

3
sum(counter.itervalues()) 

+3

¿No hay un enfoque O (1)? – corsiKa

+0

No, no hay ninguno. 'Counter' no realiza un seguimiento de esta información. Al menos sumar los conteos es mucho más eficiente que 'len (list (counter.elements()))'. –

+0

Esto es (a) más eficiente y (b) más sucinto que mi método original, pero sigue siendo feo. Si no hay una mejor manera, sugiero que debe haber un método 'Counter.elements_count()'. –

Cuestiones relacionadas