2012-04-11 277 views
14

我一直在使用計數器()嘗試,但每次我這樣做:導入錯誤:無法導入名反

from collections import Counter 

我得到一個錯誤說:

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

我是不是真的必須做出一個文件有計數器,然後從那裏輸入或什麼東西? 我是初學者,所以只有最基本的答案才能做到。

+3

您使用的是什麼版本的Python? – 2012-04-11 04:13:20

回答

2

您可以只投列表到set代替:

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

謝謝,它現在工作除了doe一件事。當你有一個字符串列表,其中一個字符串是一個空字符串時,你如何擺脫它? – 2012-04-11 02:35:50

+0

@KeelyAranyos your_list.remove('') – Akavall 2012-04-11 03:07:07

1

我不認爲你要使用計數器的集合。計數器用於計算每個單詞的出現次數等。例如:

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

要計算在列表中的不同單詞的數量,你可以嘗試使用以下:

len(set(yourList)) 

,以避免重複與不同的情況:

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

與列表不同,一個集合只允許包含它所包含的項目的一個實例。

您可能有一個早期版本的Python,它不包含標準庫中的Counter。如果是這樣的話,你應該更新到更新的版本。

31

計數器只支持python2.7及更高版本,並且在早期版本中不可用。

+1

謝謝,你是唯一真正回答問題的人,這對我有幫助。 – zurgl 2013-02-17 18:27:44

+0

感謝欣賞 – sharafjaffri 2013-02-19 10:52:11

+0

@sharafjaffri然後,你應該接受他的答案,作爲正確的答案。 – josiah 2016-10-04 15:20:22

相關問題