我有一个包含单词的列表。我想知道列表中最常用的单词。我尝试使用' counter'来自收藏包。
result = Counter(z).most_common(5)
我得到了这个结果。
result
>>[('abc', 893), ('op', 198), ('bff', 172), ('ppf', 140), ('request', 119)]
但我只想要单词而不是频率否。附上它。喜欢
['abc','op','bff','ppf','request']
答案 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)
比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]