私は辞書のために次のような構造を作成したい:Pythonでトリプルレイヤー辞書を定義する方法は?
{ id1: {id2: {id3: [] }}}
最終的にはリストを指すようになりますトリプル辞書になります。
私はPythonで、それを開始するには、次のコードを使用します。
for i in range(2160):
for j in range(2160):
for k in range(2160):
subnetwork.update({i: {j: {k: [] }}})
このコードの実行に時間がかかりすぎます。これはBig-O(N^3)の複雑さです。
このプロセスをスピードアップする方法はありますか?おそらくデータ構造をシリアル化し、ハードドライブから取得する方が速いのですか?
どのようなデータ構造でも同様の結果が得られますか?キーとして3要素のタプルを使用するフラットな辞書が私の目的に役立つでしょうか?
'i [0]' ??エラーが発生するはずです。 –
*巨大なメモリを持つシステムを持っていない限り、あなたの構造は大きすぎます。 100億のリストを作成しています。すべてのリストは少なくとも1ダースのバイトになるので、少なくとも100GBのRAMが必要です。そして、これはディクテーションを数えていません。 – spectras
2160 ** 3 = 10 077 696 000のリストを実際に入れ子にした辞書が必要ですか? –