2012-07-06 56 views
5

我正在解析數以百萬計的JSON記錄並將每個相關組件存儲在dict中。問題是,由於我正在處理的記錄數量,python被迫多次增加dict底層散列表的大小。這導致大量數據不得不被重新整理。大量的重新整理似乎花費了大量的時間。因此,我想知道是否有辦法在dict的底層哈希表上設置最小大小,以便調整大小操作的次數最小化。python dict set min_size

我已經對this question優化Python的dict,從復讀this,但無法找到如何更改dict的哈希表的初始大小。如果有人能幫我解決這個問題,我會非常感激。

謝謝

回答

2

如果你這樣做:

a = dict.fromkeys(range(n)) 

就會迫使字典大小,以適應n項。這之後相當快,但需要3秒才能完成。

+0

當然,這使我得到正確的大小。但它沒有給我正確的鑰匙。我不得不刪除所有'n'多個鍵,並使用正確的鍵重新填充,因爲我處理每個JSON記錄。這不會很慢嗎? – inspectorG4dget 2012-07-06 03:58:34

+0

它應該有助於提高速度。寫一個這樣做的小測試。它會創建一個已知大小的字典,其所有值默認爲「無」或您選擇的值。 – 2012-07-06 10:13:20

+0

與使用垃圾值人工吹動數據結構相比,沒有更好的解決方案嗎? :( – comiventor 2014-06-11 10:19:31