📚 辞書(dictionary)をやさしく解説!
一般的な配列(リスト)が「0, 1, 2…」というインデックスで値を管理するのに対し、辞書は好きな「キー(Key)」と「値(Value)」をセットで管理します。
👉 イメージは「名前付きの箱」!
🟢 基本:連想配列の作り方
変数の中に辞書を入れるイメージ
変数名 = {
キー : 値 ,
キー : 値 ,
キー : 値
}
👉 { }(波カッコ)で囲む
👉 各ペアの末尾に「 , 」(カンマ)
👉 キーと値の間は「 : 」(コロン)
data = {
"名前": "太郎",
"年齢": 15,
"教科": "数学"
}
👉 「名前 → 太郎」というセットになっている
👉 1つの辞書の中に、同じ名前のキーを複数作ることはできない
キーも値も文字列、数値どちらも使える
文字列の場合は「””」または「’ ’」の付け忘れに注意!
🟡 値の取り出し(アクセス)
print(辞書の変数名["キー"])
👉 角カッコ [ ]の中にキーを入れて値を取り出す
print(data["名前"])
👉 出力:太郎
[ ] の中にキーを書く!
キーが文字列なら「””」も忘れずに書く
🔵 値の追加・変更
# 追加 辞書の変数名[新しいキー] = 値 # 変更 辞書の変数名[元からあるキー] = 値
👉 同じ書き方で「追加」と「変更」ができる!
data = {
"名前": "太郎",
"年齢": 15,
"教科": "数学"
}
print(data["年齢"])
data["点数"] = 80 # 追加
data["年齢"] = 16 # 変更
print(data["年齢"])
👉 出力:15
16
🟣 for文でくり返し(重要!)
① キーを取り出す
何も指定しないと、キーだけが取り出されます。
for 変数名 in 辞書の変数名:
print(変数名)
👉 辞書でのfor文では、ループ用の変数名を「key」にするのが一般的
data = {
"名前": "太郎",
"年齢": 15,
"教科": "数学"
}
for key in data:
print(key)
👉 名前、年齢、教科 が順番に出る
ループ用の変数名と、辞書の変数名を混同しないように!
② 値を取り出す
辞書から全ての値を順番に取り出したいとき
for 変数名 in 辞書の変数名:
print(辞書名[変数名])
パーツA(for文の基本): for 鍵 in 辞書: で、中にある「鍵」を一つずつ取り出す。
パーツB(値の取り出し): print(辞書[鍵]) で、その鍵に合う「値」を引っ張り出す。
👉 パーツAとBを応用して組み合わせた形!
data = {
"名前": "太郎",
"年齢": 15,
"教科": "数学"
}
for key in data:
print(data[key])
1. key という変数に “名前”、”年齢”… とキーが順番に入る
2. 辞書名[key] とすることで、そのキーに対応する「値」を引っ張り出す
👉 太郎、15、数学 が順番に出る
🎯 まとめ
- 辞書 → 名前と値のセット
- 辞書名[“キー”] → 値を取り出す
- for key in 辞書: → 順番に取り出す
🎯 リストと辞書の比較
| 比較項目 | リスト (List) | 辞書 (Dict / 連想配列) |
|---|---|---|
| イメージ | 電車の車両(1号車、2号車…) | まさに「辞書」、ラベル付きの箱 |
| アクセス方法 | 0番からの「番号(添字)」で指定 | 自由な「名前(キー)」で指定 |
| 得意なこと | 順番通りに処理する、並べ替える | キーワードで特定の情報を一瞬で探す |
| データの意味 | 同じ種類のデータの集まり | ある対象の「属性」の集まり |
| 書き方 | [a, b, c] (角カッコ) |
{"key": value} (波カッコ) |
📝 練習問題1(基本)
次の出力は?
data = {"a": 10, "b": 20}
print(data["a"])
📝 練習問題2(for文)
次の出力は?
data = {"x": 1, "y": 2}
for k in data:
print(k)
📝 練習問題3(値)
次の出力は?
data = {"x": 1, "y": 2}
for k in data:
print(data[k])
📝 練習問題4(追加)
次のコードの後、dataはどうなるか、dataの中身を { から記述しよう。
data = {"a": 1}
data["b"] = 2
🏆 チャレンジ問題
キーが “math” の値を取り出す書き方は?

