Pythonのリストと辞書をネストする方法!多次元データ構造の作成ガイド
先生と生徒の会話形式で理解しよう
生徒
「Pythonでリストの中にリストや辞書を入れるってどういうことですか?」
先生
「それはリストや辞書をネストするという方法で、多次元データを扱えるようになります。」
生徒
「多次元データって難しそう…どんなときに使うんですか?」
先生
「例えば、成績表や住所録といった、階層的で複雑な情報を整理したいときに使います。順を追って見てみましょう!」
-
1. ネストとは何?
ネスト(入れ子)とは、リストの中にリストや辞書を入れる構造のことです。イメージは引き出しの中に小さな箱が入っている状態です。
こうすると複数の関連する情報を一つにまとめて管理できます。
2. リストの中にリストを入れて多次元配列にする
まずはネスト例として、テーブル形式のデータを作ってみます。
table = [
["名前", "年齢", "国"],
["たろう", 20, "日本"],
["じろう", 25, "アメリカ"]
]
print(table[1][0]) # たろうを取り出す
たろう
このように一つの変数で行と列を扱えるので便利です。
3. 辞書をネストして構造化データを作る
辞書はキーと値をペアで管理します。ネストすると次のように複雑な情報も扱えます。
students = {
"たろう": {"年齢": 20, "国": "日本"},
"じろう": {"年齢": 25, "国": "アメリカ"}
}
print(students["じろう"]["国"])
アメリカ
辞書のキーを使えば名前で直接情報を取り出せ、見通しが良くなります。
4. リストと辞書を組み合わせてさらに使いやすく
リストと辞書を混ぜて使うこともできます。たとえば、複数の生徒をまとめて管理する場合。
data = [
{"名前": "たろう", "得点": [80, 90, 85]},
{"名前": "じろう", "得点": [75, 88, 92]}
]
print(data[1]["得点"][2]) # じろうの3回目の得点を取得
92
このように複雑だけど整理されたデータ構造が作れます。
-
5. ネストを使うと何がいいの?
- 複雑な情報をひとまとめにできる
- 誰が見ても構造がわかりやすい
- 多次元処理や検索が簡単にできる
例えばアンケート結果や売上データを扱うときに役立ちます。
6. 注意点:どこまでネストするか
ネストを深くしすぎるとコードを読むときにわかりにくくなることがあります。適度な深さにとどめることが大切です。
ネストしたデータが複雑すぎたら、関数やクラスで処理を分けるとよいです。
7. 繰り返し処理と取り出し方
ネストしたリストや辞書はfor文でループ処理できます。
for student in data:
print(student["名前"], student["得点"])
これで構造を保ったまままとめて処理できます。
8. ネスト構造を実際のアプリに活かす方法
住所録アプリや社員名簿など、階層的な情報を扱うアプリ作りにピッタリです。辞書で登録、リストで一覧表示、と組み合わせる設計が便利です。