Pythonにおけるネストされた辞書(辞書の中に辞書)の使い方について詳しく解説します。
ネストされた辞書
ネストされた辞書とは、以下のように辞書の中に辞書(要素の値が辞書になっている)があるものです。
pikori_status = {
"HP": 120,
"MP": 45,
"装備": {
"武器": "鉄の剣",
"防具": "革の盾"
},
"スキル": {
"火炎斬り": "Lv2",
"回復魔法": "Lv1"
}
}
"装備"
や "スキル"
の値がさらに辞書になっていて、情報が階層的に整理されています。
このように、辞書の中に辞書を入れることで、階層的なデータ構造が作れます。ネストされた辞書は、以下のようにJSON形式のデータ構造とほぼ同じです。
■JSON形式
{
"HP": 120,
"MP": 45,
"装備": {
"武器": "鉄の剣",
"防具": "革の盾"
},
"スキル": {
"火炎斬り": "Lv2",
"回復魔法": "Lv1"
}
}
つまり、JSON形式のデータを扱うときにネストされた辞書がよく使われます。ネストされた辞書の値へアクセスするには、以下コードのように、 辞書["キー1"]["キー2"]
や辞書["キー1"].get("キー2")
のように、階層を順番にたどります。
pikori_status = {
"HP": 120,
"MP": 45,
"装備": {
"武器": "鉄の剣",
"防具": "革の盾"
},
"スキル": {
"火炎斬り": "Lv2",
"回復魔法": "Lv1"
}
}
# 武器の名前を取得
print("勇者ぴこりの武器:", pikori_status["装備"]["武器"])
# スキルのレベルを確認
print("勇者ぴこりの火炎斬り:", pikori_status["スキル"].get("火炎斬り", "Lv0"))
print("勇者ぴこりの回復魔法:", pikori_status.get("スキル", {}).get("回復魔法", "Lv0"))
勇者ぴこりの武器: 鉄の剣
勇者ぴこりの火炎斬り: Lv2
勇者ぴこりの回復魔法: Lv1
勇者ぴこりの火炎斬り: Lv2
勇者ぴこりの回復魔法: Lv1
上記コードのように、ネストされた辞書の値を取得する際、 get()
の連続使用ができますが、最初の辞書が存在しない場合、空の辞書 {} を返すようにします。これで、どのキーが欠けていてもエラーにならず、デフォルト値で処理できるため、安全なコードとなります。
関連ページ(もっと学びたい人へ)
辞書型の使い方については、以下ページで詳しく学ぶことができます。

【Python】辞書型(連想配列)の使い方を徹底解説(試験対策問題あり)
Pythonの辞書型(連想配列)の使い方について入門者向けに解説します。
Pythonの基礎から応用例まで、以下ページから学ぶことができます。

【Python超入門】基礎から応用例まで幅広く解説
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。
コメント