Pythonで辞書の中に辞書を定義する方法(ネスト構造の作り方)
ネストした辞書とは
Pythonの辞書(dict)オブジェクトはミュータブル(変更可能)です。この特性により、ある辞書オブジェクトを別の辞書の「値」として格納することができます。つまり、キーに関連付けられた値として別の辞書を定義することで、ネストした(入れ子になった)辞書を作成できるのです。
ネストした辞書の定義例
以下の例では、学生ごとの情報(名前・年齢・科目・GPA)を、それぞれ独立した辞書として保持し、それらを外側の辞書の値にしています。
>>> 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["student1"]["name"] 'Raaj' >>> students["student2"]["GPA"] 8.25
注意点
ネストした辞書はデータを階層的に整理できる便利な構造ですが、深くしすぎると可読性が低下します。実務では、JSON形式のAPIレスポンスや設定ファイルなど、階層的なデータを扱う場面でよく利用されます。
-
Pythonで文字列を辞書(dict)に変換する方法|ast.literal_evalとjson.loadsの使い分け
Pythonでは、文字列形式で表現された辞書データを実際のdictオブジェクトに変換したい場面がよくあります。主な方法としては、標準ライブラリの ast.literal_eval() を使う方法と、json モジュールを使う方法の2つがあります。それぞれの特徴と使い方を詳しく見ていきましょう。 方法1:ast.literal_eval() を使う ast.literal_eval() は、文字列をPythonの式として安全に評価する関数です。任意のコードを実行できてしまう eval() とは異なり、リテラル構造以外は評価しないため、セキュリティ面でも安心して利用できます。 評価できるのは、文
-
Pythonで関数を定義する方法!defキーワードの基本構文と使い方を解説
Pythonの関数とは?関数(function)とは、名前を指定して呼び出すことができる、ひとまとまりのコードのことです。関数には処理の対象となるデータ(引数・パラメータ)を渡すことができ、必要に応じて結果(戻り値)を返すことも可能です。なお、関数に渡されるデータはすべて明示的に指定する必要があります。関数を定義する基本構文def function_name(): # 実行したい処理をここに書くPythonでは、defキーワードに続けて半角スペース、関数名、括弧「()」、そしてコロン「:」を記述することで関数を定義します。その次の行には、インデント