🐍 Python

dict.get() でキーが無くても安全に取得する

d[key]による直接アクセスは、キーが存在しないとKeyErrorで例外が発生します。get()を使うと、キーが無い場合でも例外を出さずにNoneやあらかじめ指定したデフォルト値を返せます。

d.get(key)          # キーがあれば値、無ければNoneを返す
d.get(key, default) # キーがあれば値、無ければdefaultを返す
d = {"name": "Alice", "age": 30}
print(d.get("name"))
# Alice

print(d.get("email"))
# None ← キーが無くても例外にならない

print(d.get("email", "unknown@example.com"))
# unknown@example.com ← デフォルト値を指定
# デフォルト値との組み合わせで計算にも使える
d = {"name": "Alice", "age": 30}
print(d.get("age", 0) + 1)
# 31
# []での直接アクセスとの違い
d = {"name": "Alice", "age": 30}
try:
    d["email"]
except KeyError as e:
    print("KeyError:", e)
# KeyError: 'email'
get()の引数
第1引数: key
取得したいキー
第2引数: default(省略可)
キーが存在しない場合に返す値。省略時はNone
💡 AIコードレビュー観点:[]アクセスとget()の使い分け

AIが生成したコードでd["key"]のような直接アクセスが並んでいたら、「そのキーは必ず存在すると保証されているか」を確認しましょう。外部入力やAPIレスポンスのように存在が保証されないデータにはget()を使うほうが安全です。逆に、キーが無いこと自体がバグの兆候であれば、あえて[]で例外を出したほうが不具合の早期発見につながります。

← Python dict クイックリファレンス一覧へ戻る / in演算子でキー存在を調べる →