リストと辞書を別々に使えるようになると、次は「組み合わせて使う」場面が出てきます。
実際のデータでは、1つの値だけでなく、まとまりの中にさらに複数の情報が入っていることが多いです。
この記事では、辞書とリストを組み合わせる基本パターンを初心者向けに説明します。

この記事でわかること

  • 辞書の中にリストを入れる考え方
  • リストの中に辞書を入れる考え方
  • for文でまとめて処理する方法

完成コード(まず見てみよう)

最初に、リストの中に辞書を入れて、for文で表示するコードを見てみます。

# 生徒の情報を「リストの中に辞書」で管理します
students = [
    {"name": "田中", "score": 80},
    {"name": "鈴木", "score": 92},
    {"name": "佐藤", "score": 76},
]

for student in students:
    print(student["name"], "さんの点数は", student["score"], "点です")

実行結果は次の通りです。

田中 さんの点数は 80 点です
鈴木 さんの点数は 92 点です
佐藤 さんの点数は 76 点です

このコードはそのまま実行できます。
「複数人の情報(リスト)」と「1人分の情報(辞書)」を分けて考えるのがポイントです。

テーマの説明(やさしく)

辞書とリストを組み合わせるときは、まず「何が複数あるか」を考えると整理しやすいです。

よくある形は次の2つです。

  • 辞書の中にリスト: 1つの項目に複数の値を持たせる
  • リストの中に辞書: 複数人・複数商品のような一覧を扱う

どちらも難しそうに見えますが、1つずつ見ると「辞書」か「リスト」の基本操作の組み合わせです。

具体例・補足説明

辞書の中にリストを入れる

class_data = {
    "クラス名": "1年A組",
    "メンバー": ["田中", "鈴木", "佐藤"],
}

print(class_data["クラス名"])
print(class_data["メンバー"])
print(class_data["メンバー"][0])

実行結果は次の通りです。

1年A組
['田中', '鈴木', '佐藤']
田中

class_data["メンバー"] でリストを取り出し、そのあと [0] で要素を取り出しています。

リストの中に辞書を入れる

products = [
    {"name": "りんご", "price": 120},
    {"name": "みかん", "price": 140},
]

print(products[0]["name"])
print(products[1]["price"])

実行結果は次の通りです。

りんご
140

先にリストのインデックスで1件を選び、その中の辞書からキーで値を取り出します。

for文でまとめて処理する

products = [
    {"name": "りんご", "price": 120},
    {"name": "みかん", "price": 140},
]

for product in products:
    print(product["name"], ":", product["price"], "円")

実行結果は次の通りです。

りんご : 120 円
みかん : 140 円

for文と組み合わせると、一覧データをまとめて処理できるようになります。

おじちくワンポイント

組み合わせデータで混乱したら、途中の値を print() して確認するのが近道です。
「今ここはリストなのか、辞書なのか」を見ながら進めると、どの記号([] のインデックスか、キー指定か)を使うべきか判断しやすくなります。

よくある勘違い・注意点

  • products["name"] のように、リストに対してキー指定をするとエラーになります
  • product[0] のように、辞書に対してインデックス指定をすると意図した取り出しになりません
  • どの段階で「リスト」か「辞書」かを意識すると記号ミスを減らせます

練習問題

問題1
{"教科": ["国語", "数学", "英語"]} という辞書を作り、"数学" を表示してください。

問題2
[{"name": "A", "score": 60}, {"name": "B", "score": 75}] を作り、for文で名前と点数を1行ずつ表示してください。

まとめ

  • 辞書とリストの組み合わせは実用的なデータ表現でよく使います
  • 辞書の中にリスト、リストの中に辞書の2パターンを押さえると整理しやすいです
  • for文と組み合わせると一覧データをまとめて処理できます