2012-04-11 14 views
14

He intentado usar Contador() pero cada vez que hacer:ImportError: no se puede importar el nombre del contador

from collections import Counter 

me sale un error que dice:

Traceback (most recent call last): 
    File "<web session>", line 1, in <module> 
ImportError: cannot import name Counter 

tiene que realmente tengo que hacer un archivo que tiene contador en él y luego lo importa desde allí o algo así? Soy un principiante, así que solo la respuesta más básica servirá.

+3

¿Qué versión de Python estás usando? –

Respuesta

2

Usted sólo puede emitir la lista en un lugar set:

l = ['a','b', 'c', 'a', 'd', 'e', 's', 'd', 'e', 'c'] 
print (len(set(l)) #prints 6 
+0

gracias, ahora funciona excepto una cosa. cuando tienes una lista de cadenas y una de las cadenas es una cadena vacía, ¿cómo te deshaces de ella? –

+0

@KeelyAranyos your_list.remove ('') – Akavall

1

No creo que desea utilizar Contador de colecciones. El contador se usa cuando desea hacer algo como contar el número de apariciones de cada palabra. Por ejemplo:

from collections import Counter 
Counter(['dog','cat','dog']) # Should output Counter({'dog': 2, 'cat': 1}) 

para contar el número de palabras distintas en una lista, es posible que intente utilizar el siguiente:

len(set(yourList)) 

de para evitar duplicados con diferentes casos:

len(set(word.lower() for word in yourList)) 

Se permite que un conjunto contenga solo una instancia de los elementos que contiene, a diferencia de una lista.

Es posible que tenga una versión anterior de Python que no incluya el contador en la biblioteca estándar. Si ese es el caso, debe actualizar a una versión más nueva si puede.

31

El contador solo es compatible con python2.7 y superior y no está disponible en versiones anteriores.

+1

Gracias, eres el único que responde realmente la pregunta, me ayuda. – zurgl

+0

Gracias por su aprecio – sharafjaffri

+0

@sharafjaffri Probablemente debería aceptar su respuesta, entonces, como la respuesta correcta. – josiah

Cuestiones relacionadas