我想對特定字典進行排序並返回top_n次出現次數的列表。字典是來自txt文檔的單詞的集合,其中「關鍵字」是來自txt文件的單個單詞,並且「值」是其在文檔中出現的次數。按最大值排序字典:類方法
我有初始化方法如下:
def __init__(self:'Collection_of_words', file_name: str) -> None:
''' this initializer will read in the words from the file,
and store them in self.counts'''
l_words = open(file_name).read().split()
s_words = set(l_words)
self.counts = dict([ [word, l_words.count(word)]
for word
in s_words])
現在,我的實例方法之一將返回安寧一些int參數出現的「頂部N」數字的字符串列表。我給它一個鏡頭:
def top_n_words(self, i):
'''takes one additional parameter, an int,
<i> which is the top number of occurences. Returns a list of the top <i> words.'''
return [ pair[0]
for pair
in sorted(associations, key=lambda pair: pair[1], reverse=True)[:5]]
但是,每當我運行此代碼我得到的錯誤,不能找出原因。我不知道如何解釋的對象(如self.counts)
你只是需要這個工作,或者你是否試圖找出方法來做到這一點的學習練習?有一個內置的類,將以更有效的方式爲你做這件事,'collections.Counter'。 –
不,我試圖把這個出來作爲一個學習練習與藏品的幫助.Counter。 –