リストと辞書を別々に使えるようになると、次は「組み合わせて使う」場面が出てきます。
実際のデータでは、1つの値だけでなく、まとまりの中にさらに複数の情報が入っていることが多いです。
この記事では、辞書とリストを組み合わせる基本パターンを初心者向けに説明します。
この記事でわかること
完成コード(まず見てみよう)
最初に、リストの中に辞書を入れて、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() して確認するのが近道です。
「今ここはリストなのか、辞書なのか」を見ながら進めると、どの記号([] のインデックスか、キー指定か)を使うべきか判断しやすくなります。
よくある勘違い・注意点
練習問題
問題1{"教科": ["国語", "数学", "英語"]} という辞書を作り、"数学" を表示してください。
問題2[{"name": "A", "score": 60}, {"name": "B", "score": 75}] を作り、for文で名前と点数を1行ずつ表示してください。