Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでネストされた辞書(入れ子のdict)を作成する方法

Pythonの辞書(dict)オブジェクトはミュータブル(変更可能)です。この特性を利用すると、ある辞書の「値」として、別の辞書オブジェクトをそのまま格納することができます。このように、キーに対応する値としてさらに辞書が定義されている構造を、ネストされた辞書(入れ子構造の辞書)と呼びます。

ネストされた辞書の基本構文

ネストされた辞書は、外側のキーに対して、波括弧 {} で囲まれた新しい辞書を値として指定するだけで作成できます。

>>> students={"student1":{"name":"Raaj", "age":23, "subjects":["Phy", "Che", "maths"],"GPA":8.5},"student2":{"name":"Kiran", "age":21, "subjects":["Phy", "Che", "bio"],"GPA":8.25}}

この例では、students という辞書の中に、student1student2 という2つのキーがあり、それぞれの値として生徒ごとの詳細情報(名前・年齢・科目・GPA)を保持する辞書が格納されています。

ネストされた辞書へのアクセス方法

内側の要素にアクセスするには、角括弧 [] を連続して使用し、外側のキーから順番に指定します。

>>> students["student1"]["name"]
'Raaj'
>>> students["student2"]["GPA"]
8.25

get() メソッドを使った安全なアクセス

存在しないキーを指定すると KeyError が発生します。これを避けたい場合は、get() メソッドを使うと、キーが存在しない場合にデフォルト値を返すことができます。

>>> students.get("student3", {})
{}

まとめ

  • 辞書はミュータブルなので、値として別の辞書を格納できる
  • ネストされた辞書は、キーに対して波括弧で定義した辞書を指定するだけで作成できる
  • 複数階層のデータにアクセスするには、[] を連続して使うか、get() を活用する

ネストされた辞書は、JSON形式のデータや設定ファイルなど、階層的なデータを扱う際に非常に便利な構造です。

  1. Pythonでネストされた辞書を再帰的に反復処理する方法

    Pythonでは、辞書(dict)の中にさらに辞書が入れ子になった「ネストされた辞書」を扱うことがあります。このような多層構造のデータをすべて走査するには、再帰的なアプローチが最も効果的です。 以下は、ネストされた辞書オブジェクトの例です。 D1={1: {2: {3: 4, 5: 6}, 3: {4: 5, 6: 7}}, 2: {3: {4: 5}, 4: {6: 7}}} 再帰関数による反復処理 各キーに対応する値が辞書そのものである場合は、同じ関数を再帰的に呼び出して、より深い階層へと処理を進めます。値が辞書でない場合は、そのキーと値を出力します。 def iterdict(d): &

  2. Pythonで辞書の中に辞書を定義する方法(ネスト構造の作り方)

    ネストした辞書とはPythonの辞書(dict)オブジェクトはミュータブル(変更可能)です。この特性により、ある辞書オブジェクトを別の辞書の「値」として格納することができます。つまり、キーに関連付けられた値として別の辞書を定義することで、ネストした(入れ子になった)辞書を作成できるのです。ネストした辞書の定義例以下の例では、学生ごとの情報(名前・年齢・科目・GPA)を、それぞれ独立した辞書として保持し、それらを外側の辞書の値にしています。>>> students = { student1: {name: Raaj, age: 23, subjects: [Phy, C