您的方法不起作用,因为,split返回一个列表.因此,您的代码会创建一个嵌套列表.您需要将其展平以与Counter一起使用.你可以用很多方式压扁它.
from itertools import chain
from collections import Counter
Counter(chain.from_iterable(words))
这将是压缩嵌套列表并查找频率的最佳方法.但是你可以像这样使用生成器表达式
sentences = ['The girls are gorgeous', "I'm mexican"]
from collections import Counter
print Counter(item for items in sentences for item in items.split())
# Counter({'mexican': 1, 'girls': 1, 'are': 1, 'gorgeous': 1, "I'm": 1, 'The':1})
这将获取每个句子,将其拆分以获取单词列表,迭代这些单词并展平嵌套结构.
如果你想找到前10个单词,那么你可以使用Counter.most_common方法,就像这样
Counter(item for items in sentences for item in items.split()).most_common(10)