やっほー!国内のAI狂いだよ!✨
第16回へようこそ!今回は、データ構造のラスボス「辞書(dictionary)」を紹介するよ。
「辞書」って名前の通り、言葉(キー)から意味(値)を引ける優れもの。
「出席番号(リストのインデックス)」じゃなくて、「名前」でデータを探したい時に最強の威力を発揮するよ!実務ではこれを使わない日はないってくらい重要だから、絶対マスターしてね!📚🥺
公式の「ここがわかりにくい」:関連付けられた値?
公式ドキュメントには、辞書についてこう書かれているよ。
辞書は キー(key) でインデクス化されています。(中略) 辞書は キー: 値 のペアの集合であり、キーが (辞書の中で) 一意でなければならない、と考えるとよいでしょう。
難しく書いてあるけど、要するに「ラベル(キー)と中身(値)がセットになったデータ」ってこと!
リストが「0番目の引き出し、1番目の引き出し…」っていう番号管理だとしたら、
辞書は「『お菓子』と書かれた引き出し、『文房具』と書かれた引き出し…」っていうラベル管理なんだね。
1. 辞書の作り方:{キー: 値} のペア!
辞書は波括弧 {} を使って、キー: 値 の形で書くよ。
複数のペアがあるときはカンマ , で区切ってね。
🐍 サンプルコードを見る(クリックで開閉)
# 辞書の作成
profile = {
"name": "AI狂い",
"age": 20,
"job": "ブロガー"
}
# アクセス方法:[キー] を使う
print(profile["name"]) # -> AI狂い
print(profile["age"]) # -> 20
# 存在しないキーを指定すると...?
# print(profile["weight"]) # -> KeyError(エラー)になる!
AI狂い
20
リストの時は list[0] みたいに数字だったけど、辞書は dict["ラベル"] で中身を取り出せるんだ。
これなら「何番目だっけ?」って悩まなくて済むよね!✨
2. 【試験頻出】KeyErrorを防ぐ get() メソッド
辞書に存在しないキーを [] で指定すると、KeyError というエラーになってプログラムが止まっちゃう。
「あれば取り出す、なければ『なし』ってことにしたい」って時に使うのが get() メソッドだよ。
辞書.get(キー, デフォルト値)キーがあればその値を、なければデフォルト値(省略するとNone)を返す。エラーにならない!
🐍 サンプルコードを見る(クリックで開閉)
profile = {"name": "AI狂い"}
# 存在するキー
print(profile.get("name"))
# -> AI狂い
# 存在しないキー(エラーにならない!)
print(profile.get("weight"))
# -> None
# 存在しない場合の値を指定することもできる
print(profile.get("weight", "非公開"))
# -> 非公開
AI狂い
None
非公開
3. データの書き換えも簡単!
辞書はリストと同じくミュータブル(変更可能)だよ。
新しいラベルを追加したり、中身を書き換えたりできるんだ。
- 追加・変更:
辞書[キー] = 値(キーがあれば上書き、なければ新規追加) - 削除:
del 辞書[キー]またはpop(キー)
🐍 実験コードを見る(クリックで開閉)
menu = {"apple": 100, "banana": 200}
# 追加
menu["orange"] = 300
print(f"追加後: {menu}")
# 変更(上書き)
menu["apple"] = 150
print(f"変更後: {menu}")
# 削除
del menu["banana"]
print(f"削除後: {menu}")
追加後: {‘apple’: 100, ‘banana’: 200, ‘orange’: 300}
変更後: {‘apple’: 150, ‘banana’: 200, ‘orange’: 300}
削除後: {‘apple’: 150, ‘orange’: 300}
4. 辞書をfor文で回すテクニック
辞書の中身を全部チェックしたい時は for 文を使うけど、回し方が3パターンあるよ。
特に items() は実務で一番使うから覚えてね!
① キーだけ取り出す(デフォルト)
for key in menu: # menu.keys() と同じ
print(key) # apple, orange...
② 値だけ取り出す
for val in menu.values():
print(val) # 150, 300...
③ キーと値をセットで取り出す(★推奨)
for key, val in menu.items():
print(f"{key} は {val} 円です")
items() を使うと、キーと値を同時に変数に入れられる(アンパック)から超便利!
5. 【試験頻出】キーのルール
辞書のキーには、「文字列」や「数値」は使えるけど、「リスト」は使えないんだ。
なぜなら、リストは中身が変わる(ミュータブル)から。
「[1, 2]の引き出し」を作った後に、リストの中身が[1, 2, 3]に変わっちゃったら、引き出しが見つからなくなっちゃうでしょ?
イミュータブル(変更不可)であること。
⭕ 文字列、数値、タプル
❌ リスト、辞書、セット
試験に出る!要注意ポイント
今回の範囲で、Python 3 エンジニア認定基礎試験によく出るポイントをまとめたよ!📝
① dict() コンストラクタ
{} だけじゃなくて、dict() 関数を使っても辞書を作れるよ。
キーワード引数を使うと、キーを文字列として書かなくていいから楽なんだ。
# {"a": 1, "b": 2} と同じ
d = dict(a=1, b=2)
② in 演算子
辞書の中にキーがあるかどうか調べるには in を使うよ。
これはキーの確認であって、値の確認ではない点に注意!
d = {"a": 1}
"a" in d # True (キーにある)
1 in d # False (値にはあるけどキーにはない)
「辞書にキーがあったら追加、なかったら更新」みたいなロジックを書こうとして、毎回
if key in d: って書いてたんだけど、実は
d[key] = val って書くだけで「あれば上書き、なければ追加」を勝手にやってくれるんだよね。この性質を知ってからコードが3行くらい短くなって感動したよ😭
理解度チェック!ミニクイズ
辞書の仕組み、バッチリ理解できたかな?
試験レベルの問題でチェックしてみよう!🔍
次のコードを実行した結果はどうなる?
d = {"a": 10, "b": 20}
print(d.get("c", 0))
▼ クリックで正解を表示
解説:
get("c", 0) は、「キー “c” を探して、なければデフォルト値 0 を返す」という意味だよ。
辞書に “c” はないから、0 が表示されるね。
次のうち、辞書のキーとして使用できないものは?
▼ クリックで正解を表示
[1, 2]
解説:
リストはミュータブル(変更可能)だから、辞書のキーにはなれないよ。
タプル (1, 2) はイミュータブルだからキーにできるんだ。この違いは超重要!
辞書 d のキーと値を同時に取り出すループの書き方は?
▼ クリックで正解を表示
d のキーと値を同時に取り出すループの書き方は?for k, v in d.items():
解説:
items() メソッドを使うと、(キー, 値) のタプルが返ってくるから、それを k, v で受け取るんだ。
3番の書き方はキーだけが返ってくるよ。
まとめ:次回への引き
今回は「辞書」について解説したよ!
「キーで値を検索する」という感覚、つかめたかな?これが使えるとプログラムの世界が一気に広がるよ✨
次回は、またまたループの話に戻るけど、ちょっと高度なやつ!
テーマは「ループをより深く!zip, enumerate, reversed」だよ。
「2つのリストを同時にループしたい」とか「インデックス番号も一緒に欲しい」なんて時に使う便利な関数たちを紹介するからお楽しみに!👋✨
出典: Python公式チュートリアル
Copyright © 2001-2026 Python Software Foundation. Licensed under the PSF License.






