私は、各シリーズを(整数で)識別しなければならない数百のオブジェクトのオーダーのデータ系列からなる動的セットを持ち、整数で識別されます。各要素はカスタムクラスです。Pythonで直列要素の2次元配列を実装するための最良の方法
私はdefaultdictを使って入れ子になった(2-D)辞書を作成しました。これにより、キー/ IDでシリーズや個々の要素にすばやくアクセスできます。私は要素やシリーズ全体を追加したり削除したりできるようにする必要がありました。また、IDは追加/削除のために順次である必要はありません。 IDは私のアプリケーションを通してどこかで一意で参照されるので重要です。
例えば、今私は、一連の要素を挿入することができるようにしたい実現しますが、辞書はかなりそれをサポートしていない、しかし、
[1][1,2,3,4,5]
[2][1,4,10]
[4][1]
をキー/ IDが設定され、次のデータを検討。例えば、私は(4,5から)その上のIDを引き起こし、シリーズ1 3と4との間に新たな要素を挿入できるようにしたい(5,6に)インクリメントする:
[1][1,2,3,4,5] becomes
[1][1,2,3,4(new),5,6]
要素は連続した系列の一部であるため、順序は重要です。これはinsert()をサポートしているのでネストされたリストでは簡単だが、要素インデックスを取得するために2次元配列全体を反復することが強制されるだろうか?
このデータ構造をPythonで実装する最も最適な方法は何でしょうか?
dict = {1:[...],3:[...], ....}
あなたは、あなたのように配列にしてください動作させることができます。
なぜ新しい値を挿入してリストをソートできないのですか? '[1] .push(new)'と '[1] .sort()'のどちらかです。 – tkone
@tkoneリストを使用していません。入れ子になっている辞書を使用しています。 –
あなたのコードによれば、あなたはリストを使用しています。リストはPythonで '[]'表記で定義されています。辞書は '{}'です。また、それらがdictsであることになっている場合は、あなたのdictsのためのキーと値がありません。 – tkone