【レベル6】連想配列(辞書)

📚 辞書(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” の値を取り出す書き方は?

タイトルとURLをコピーしました