我正在嘗試編寫一個anagram服務。該方案的第一階段是要經過字的字典,並創建密鑰的Python字典的字長度和那些長度的字的值,即:醃製Python快速字典創建?
def processedDictionary():
d = defaultdict(list)
f = open(dictionaryFile, "r")
f.close()
for line in lines:
length = len(line)
d[length].append(line)
return d
這意味着字謎字只必須與相同長度的文字進行比較,其中processedDictionary()[length]
可以加快腳本的速度。但是,我試圖更加優化腳本,因爲每次有人對字典進行字跡處理時都必須「處理」字典,這很愚蠢,因此我每次看字幕時都會加載已分類的字典:
def processedDictionary():
file = open("dic.obj",'rb')
object_file = pickle.load(file)
file.close()
return object_file
dic.obj
是處理過的字典的2MB轉儲。然而,即使使用cPickle,pickle字典的加載速度也是原始腳本的兩倍左右!任何人都可以建議我在這裏丟失什麼,以及什麼是正確的路線來優化字典加載?
你正在運行哪個python版本? – Torxed
Python 2.7。對不起,總是忘記提及... – Laurence
不用擔心,它與Pickle合作時特別重要:) – Torxed