查找列表中最常用的单词(没有频率编号)

时间:2016-08-30 09:58:09

标签: python-3.x

我有一个包含单词的列表。我想知道列表中最常用的单词。我尝试使用' counter'来自收藏包。

result = Counter(z).most_common(5)

我得到了这个结果。

result
>>[('abc', 893), ('op', 198), ('bff', 172), ('ppf', 140), ('request', 119)]

但我只想要单词而不是频率否。附上它。喜欢

['abc','op','bff','ppf','request']

3 个答案:

答案 0 :(得分:0)

使用列表推导从result中提取它们:

print([res[0] for res in result])

答案 1 :(得分:0)

您可以使用索引和列表解析:

result = Counter(z).most_common(5)
result = [i[0] for i in result]

或者在一行中:

result = [i[0] for i in Counter(z).most_common(5)]

答案 2 :(得分:0)

来自HERE计数器的

比defaultdict慢。如果表现很重要,试试这个:

import operator
from collections import defaultdict

counter = defaultdict(int)
foods = ['soy', 'dairy', 'gluten', 'soy']
for k in foods:
    counter[k] += 1
most_common = 5
# counter includes a dictionary(without order)
# here we sort dictionary(this may needs more time than above link shows):
result = list(zip(*sorted(counter.items(), key=operator.itemgetter(1), reverse=True)[:most_common]))[0]