我创建了一个函数,用文件中的单词创建一个字典,值是单词的频率,名为read_dictionary。我现在尝试制作另一个按计数打印文件前三个单词的函数,所以它看起来像这样: " fileName中的前三个单词是: 字:数字 字:数字 字:数字"
这就是我的代码:
def top_three_by_count(fileName):
freq_words = sorted(read_dictionary(f), key = read_dictionary(f).get,
reverse = True)
top_3 = freq_words[:3]
print top_3
print top_three_by_count(f)
答案 0 :(得分:0)
您可以使用collections.Counter
。
from collections import Counter
def top_three_by_count(fileName):
return [i[0] for i in Counter(read_dictionary(fileName)).most_common(3)]
实际上你根本不需要read_dictionary()
功能。以下代码片段为您完成整个过程。
with open('demo.txt','r') as f:
print Counter([i.strip() for i in f.read().split(' ')]).most_common(3)