【Python】辞書(dict)の基本:キーと値の扱い方

Python

こんにちは、かつコーチです。

これまでリストとタプルを解説してきましたが、今回は辞書(dict)を取り上げます。

辞書とは、「キー」と「値」をペアにしてデータを管理できる構造のことです。

リストがインデックス(番号)で要素を管理するのに対し、辞書は名前(キー)で値を管理できるのが大きな特徴です。

「名前で名前を管理したいのに、リストでインデックス番号を数えながら探していた」というのが、私が辞書のありがたみを実感した瞬間でした。

この記事では、辞書の作成から値の取得・追加・削除、そしてエラーを防ぐget()の使い方まで解説します。

基本の書き方:辞書の作成と操作

辞書を作成する

辞書は{}(波かっこ)を使い、キー: 値の形で作成します。

user = {
    "name": "かつコーチ",
    "age": 30,
    "job": "エンジニア",
}
print(user)
# {'name': 'かつコーチ', 'age': 30, 'job': 'エンジニア'}

キーには文字列だけでなく、数値やタプルなど、イミュータブルな値を使うこともできます。

値を取得する

キーを指定して値を取り出します。

print(user["name"])
# かつコーチ

値を追加・更新する

新しいキーに値を代入すると、要素が追加されます。

user["email"] = "katsu@example.com"
print(user)
# {'name': 'かつコーチ', 'age': 30, 'job': 'エンジニア', 'email': 'katsu@example.com'}

既存のキーに代入すると、値が上書きされます。

user["age"] = 31
print(user["age"])
# 31

値を削除する

del文またはリストのpopと同様のpop()メソッドで削除できます。

del user["email"]
print(user)
# {'name': 'かつコーチ', 'age': 31, 'job': 'エンジニア'}

removed_value = user.pop("job")
print(removed_value)
# エンジニア

つまずきやすい設定・注意点

辞書のキーをfor文でループするとき、初心者はよく次のように書きがちです。

for key in user:
    print(key, user[key])

これでも動きますが、キーと値を同時に扱いたいならitems()を使う方が読みやすくなります。

for key, value in user.items():
    print(f"{key}: {value}")
# name: かつコーチ
# age: 31

よくあるつまずきポイント・エラー対処

存在しないキーを指定してエラーになる

❌ Before:[]で存在しないキーにアクセスする

私が辞書を使い始めたころ、ユーザーの登録情報を扱うプログラムで、次のようなコードを書いていました。

user = {"name": "かつコーチ", "age": 31}
print(user["phone"])

「電話番号」のキーがまだ登録されていないユーザーもいる、ということを考慮していなかったため、次のエラーが発生しました。

KeyError: 'phone'

このエラーはプログラムの実行を止めてしまうため、実際のアプリでは処理全体が落ちてしまい、原因調査に時間を取られました。

✅ After:get()でデフォルト値を指定する

get()メソッドを使うと、キーが存在しない場合でもエラーにならず、代わりに指定したデフォルト値を返してくれます。

user = {"name": "かつコーチ", "age": 31}
phone = user.get("phone", "未登録")
print(phone)
# 未登録

第2引数を省略した場合は、Noneが返ります。

phone = user.get("phone")
print(phone)
# None

この経験以来、「キーが確実に存在すると分かっている場合以外はget()を使う」ことを徹底するようになりました。

特にユーザー入力やAPIのレスポンスなど、外部から来るデータを扱うときはget()が安全です。

キーの存在確認をしてから処理を分けたい場合

in演算子を使うと、キーの存在を条件分岐に使えます。

if "phone" in user:
    print(user["phone"])
else:
    print("電話番号は未登録です")

まとめ

この記事のポイント

  • 辞書は{}を使い、キーと値のペアでデータを管理する
  • 値の取得は辞書[キー]、追加・更新は代入で行う
  • 削除はdel文またはpop()メソッドを使う
  • 存在しないキーに[]でアクセスするとKeyErrorが発生する
  • get(キー, デフォルト値)を使えばエラーを防ぎつつ安全に値を取得できる

次に読むべき記事

辞書を理解したら、次は重複を許さないデータ構造「セット(set)」と、その集合演算を見ていきましょう。

→ 次の記事:セット(set)の基本と集合演算

タグ: Python, 初心者向け, 基本文法

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