我这里有这个程序,它计算我的.txt文件中使用单词的次数,并显示前10个最常用的单词。我希望在没有数字的情况下显示这些信息,所以只是单词。任何帮助将不胜感激。
def countWordFrequency(Data1):
myDict = {}
fh = open(Data1, 'r')
content = fh.read()
listWords = content.split(" ")
for w in listWords:
if (myDict.has_key(w)):
myDict[w] = myDict[w] + 1
else:
myDict[w] = 1
fh.close()
return myDict
freq = countWordFrequency('Data1.txt')
topfreq = sorted(freq.iteritems(), key=lambda x:-x[1])[:10]
for x in topfreq:
print "{0}: {1}".format(*x)
答案 0 :(得分:0)
一些列表理解魔法怎么样?
f = open('Data1.txt','r')
words = [x for y in [l.split() for l in f.readlines()] for x in y]
print sorted([(w, words.count(w)) for w in set(words)], key = lambda x:x[1], reverse=True)[:10]
如果你努力的话,我确定你可以在一行中做到这一点。