16

我曾尝试使用 Counter() 但每次我这样做:

from collections import Counter

我收到一条错误消息:

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

我真的必须制作一个包含计数器的文件,然后从那里导入它吗?我是初学者,所以只有最基本的答案才行。

4

6 回答 6

38

Counter 仅支持 python2.7 及更高版本,在早期版本中不可用。

于 2012-09-25T18:26:50.627 回答
7

利用

from collections import Counter

并确保C字母 ofCounter是大写字母。

于 2019-08-12T20:39:47.717 回答
2

您可以将列表转换为 a set

l = ['a','b', 'c', 'a', 'd', 'e', 's', 'd', 'e', 'c']
print (len(set(l)) #prints  6
于 2012-04-11T02:21:53.867 回答
1

我认为您不想使用集合中的 Counter 。当您想要执行诸如计算每个单词的出现次数之类的操作时,使用计数器。例如:

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))

与列表不同,一个集合只允许包含它所包含的项目的一个实例。

您可能拥有标准库中不包含 Counter 的早期版本的 Python。如果是这种情况,您应该尽可能更新到较新的版本。

于 2012-04-11T02:36:37.253 回答
0

在 Python3 中

import collections
a=collections.Counter(list(i for i in input()))
print(a)

输入- aaabbbcccc

输出- Counter({'c': 4, 'a': 3, 'b': 3})

如果你想要元素然后使用a.elements(), 获取值使用a.values()

于 2020-02-01T07:12:30.707 回答
0

重命名您的文件,就像您的文件命名为集合或计数器一样。之后,这将起作用

于 2021-07-14T11:12:32.550 回答