2017-03-04 203 views
0

我有一個非常大的python字符串列表,我想創建一個詞作爲關鍵字,它的頻率作爲一個值。這樣做的有效方式是什麼? 這裏是我的解決方案:從python列表中創建字典

from collections import defaultdict 
def make_dictionary(list_of_words): 
    file_dict=defaultdict(int) 
    for w in list_of_words: 
     file_dict[w]+=1 
    return file_dict 

,因爲我有非常大的大小的名單,我不想遍歷list.what對我來說是更好的選擇,以減少時間複雜度?

+0

工作只需使用一個'Counter'。它是一個特殊的字典,在* O(n)*(最壞的情況下* O(n^2)*)平均工作。 –

+0

是否有任何選項可以減少小於O(n)的複雜度? –

+0

當然不是,如何讀取* n *詞而不讀取所有* n *個詞? –

回答

2

這就是collections.Counter

from collections import Counter 
dictionary = Counter(list_of_words)