2012-04-11 275 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

相关问题