2012-07-06 15 views
5

私は何億ものJSONレコードを解析し、それぞれの関連コンポーネントをdictに保存しています。問題は、私が処理しているレコードの数のために、pythonはdictの基になるハッシュテーブルのサイズを何度か増やさなければならないということです。この結果、多くのデータを再ハッシュする必要があります。再ハッシング自体の膨大な量は、多くの時間を費やすようです。したがって、dictの基になるハッシュテーブルに最小サイズを設定して、サイズ変更操作の回数を最小限に抑える方法があるのだろうかと思います。python dict set min_size

私はthis questionの答えから、Pythonのdictを最適化することにthisを読んでいるが、dictのハッシュテーブルの初期サイズを変更する方法を見つけることができません。もし誰かがこれで私を助けることができたら、私はとても感謝しています。

a = dict.fromkeys(range(n)) 

それは、n個のアイテムを収容するために、辞書サイズを強制します:

は、あなたがこれを行う場合は

答えて

2

ありがとうございます。その後はかなり速いですが、そうするには3秒かかります。

+0

確かに、それは私に正しいサイズを取得します。しかし、それは私に正しいキーを取得しません。私は各JSONレコードを処理するので、すべての 'n'個の多くのキーを削除し、正しいものを再投入する必要があります。それは遅くないだろうか? – inspectorG4dget

+0

スピードに役立つはずです。そうする小さなテストを書く。すべての値がデフォルトでNoneまたは任意の値に設定されている既知のサイズの辞書を作成します –

+0

ジャンク値を持つデータ構造を人工的に吹き飛ばしているよりも洗練されたソリューションはありませんか? :( – comiventor