2016-08-17 87 views
0

我有這個代碼來搜索文本文件中的5個最常見的單詞,但我不能在程序結束時使用排序和反向功能...我將如何避免使用他們?在文本文件python中的5個最常見的單詞

words = open('romeo.txt').read().lower().split() 


uniques = [] 
for word in words: 
    if word not in uniques: 
    uniques.append(word) 


counts = [] 
for unique in uniques: 
    count = 0    
    for word in words:  
    if word == unique: 
     count += 1   
    counts.append((count, unique)) 

counts.sort()    
counts.reverse()   

for i in range(min(5, len(counts))): 
    count, word = counts[i] 
    print('%s %d' % (word, count)) 
+0

我認爲當你使用排序,你應該扭轉之前保存結果,所以'counts.sort()'不更新計數 – d3r1ck

+0

計數(或排序)之前,你可能要「正常化'的話。小寫?德變複數?刪除動詞結尾? –

回答

0

使用sorted()功能,並將結果保存在一個變量,然後扭轉它是這樣的:

counts = sorted(counts, reverse=True) 

這行代碼列表進行排序和扭轉它爲您和保存計數結果。然後你可以根據需要使用你的計數。

4
from collections import Counter 

c = Counter(words) 
c.most_common(5) 
相關問題