2012-04-11 13 views
14

Ho provato con Counter(), ma ogni volta che faccio:ImportError: non si può importare nome contatore

from collections import Counter 

ottengo un errore che dice:

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

posso effettivamente devo fare un file che ha un contatore e poi importa da lì o qualcosa del genere? Sono un principiante quindi solo la risposta più semplice.

+3

Quale versione di Python stai usando? –

risposta

2

Si può solo lanciare l'elenco in un set invece:

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

grazie, ora funziona, tranne una cosa. quando hai una lista di stringhe e una delle stringhe è una stringa vuota, come fai a liberartene? –

+0

@KeelyAranyos your_list.remove ('') – Akavall

1

Non credo che si desidera utilizzare contatore da collezioni. Il contatore è usato quando vuoi fare qualcosa come contare il numero di occorrenze di ogni parola. Per esempio:

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

per contare il numero di parole distinte in un elenco, si potrebbe provare a utilizzare il seguente:

len(set(yourList)) 

di per evitare duplicati con diversi casi:

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

Un set può contenere solo un'istanza degli elementi che contiene, a differenza di un elenco.

Si potrebbe avere una versione precedente di Python che non include Contatore nella libreria standard. In questo caso, dovresti aggiornare ad una versione più recente, se puoi.

31

Il contatore è supportato solo da python2.7 e versioni successive e non è disponibile nelle versioni precedenti.

+1

Grazie, sei l'unico ragazzo che risponde davvero alla domanda, mi aiuta. – zurgl

+0

Grazie per l'apprezzamento – sharafjaffri

+0

@sharafjaffri Probabilmente dovresti accettare la sua risposta, quindi, come risposta corretta. – josiah

Problemi correlati