2次元のpython dictにCSVファイルまたはExcelシート(行と列を含む)からデータをロードする必要があります。 Excelシートのデータは次のようになりますたとえば、:共有メモリを持つ2次元のpython dict
name age gender location
1 Jim 18 male China
2 Ross 18 male China
3 Cara 19 female Japan
4 Ted 18 male China
次に出力Pythonの辞書は次のようになります。
data = {
1: {'name': 'Jim', 'age': 18, 'gender': 'male', 'location': 'China'},
2: {'name': 'Ross', 'age': 18, 'gender': 'male', 'location': 'China'},
3: {'name': 'Cara', 'age': 19, 'gender': 'female', 'location': 'Japan'},
4: {'name': 'Ted', 'age': 18, 'gender': 'male', 'location': 'China'}
}
あなたは内の重複に関する情報がたくさんあることがわかりますこの2次元のdict(そして、実際のデータについては、それは同じ条件を持っている)ので、私は共有メモリを使って新しいdictを開発する考えを思いつきました。具体的には、上記の例では、私の二次元辞書は、{'age': 18, 'gender': 'male', 'location': 'China'}
のコピーを複数の行に保存するだけです(これらの行は隣接する必要はありません)。 data[1]['age']
とdata[2]['age']
を呼び出す場合、同じ抽出された小さな共有の辞書でルックアップを実行する必要があります。
私はpython dictのソースコードを読んでいます。私はpython dictがキーと値へのポインタを保存していることを知っています(通常は小さなintとstringオブジェクトに対して、異なるオブジェクトは同じオブジェクトを指します)。だから私は1つのコピーを保存したいという意味では、私はポインタのコピーを意味します。
このディクテーションをどのように設計するかについてのご意見はありますか?どうもありがとう!!!
EDIT
申し訳ありませんが、私が言及するのを忘れています。この2Dディクテーションのデータは読み取り専用です。
これは非常に悪い考えのように聞こえます。ジムの場所を変更すると、突然ロスとテッドも変わった。 –
@Kelvin申し訳ありませんが、私は言及するのを忘れました。この辞書のデータは読み取り専用になります:) –
これらの人々の間に本質的な共有コンポーネントがない限り、[圧縮アルゴリズム](https://en.wikipedia.org/wiki/)が必要ですData_compression)。原則として、これはディクショナリ内のアイテムへのアクセスをスピード・トレードオフとスピード・トレードオフの間で遅くすることに注意してください。 –