辞書: キーと値のマッピング

O(1) でアクセス。設定、API レスポンス、構造化データに。

辞書
キーと値のペアを持つコレクション。
キー
値を取得するための識別子。
get
キーがなくてもエラーにならないアクセス方法。

辞書基礎

スマートロッカー (Smart Locker)

辞書は「キー暗証番号(キー)」で開く「スマートロッカー」です。番号(キー)を指定すれば、中に入れた荷物(値)を一瞬で取り出せます。ロッカーのどこに入っているかを探す必要がないため、データが100万件あっても一瞬で見つかります(O(1))。

リストが「0, 1, 2...」という自動的な番号で管理するのに対し、辞書は「好きな名前(文字列など)」をラベルとして使えます。ユーザー情報(名前、年齢、メール)や設定ファイルなど、構造化されたデータを扱うのに最適です。

Dict Operations
user = {
"name": "Alice",
"age": 30,
"email": "alice@example.com"
}
# アクセス
user["name"] # 'Alice'
user.get("name") # 'Alice' (キーがなくても安全)
user.get("phone", "N/A") # デフォルト値
# 変更
user["age"] = 31 # 更新
user["address"] = "Tokyo" # 追加
del user["email"] # 削除
Bad
# ❌ Bad: キーの存在チェックが冗長
if "name" in user:
name = user["name"]
else:
name = "Unknown"
Good
# ✅ Good: get でスッキリ
name = user.get("name", "Unknown")

便利なメソッド

Dict Methods
person = {"name": "Bob", "age": 25}
# キー・値・ペアの取得
person.keys() # dict_keys(['name', 'age'])
person.values() # dict_values(['Bob', 25])
person.items() # dict_items([('name', 'Bob'), ('age', 25)])
# 辞書内包表記
squares = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
# マージ (Python 3.9+)
merged = {"a": 1} | {"b": 2} # {'a': 1, 'b': 2}

合格ライン

.get() を使える
辞書内包表記を書ける

演習課題

課題1: 辞書操作
get() と setdefault() を使って辞書を操作してください。
課題2: 辞書内包表記
辞書内包表記でキーと値を変換してください。