🐍 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()を使うほうが安全です。逆に、キーが無いこと自体がバグの兆候であれば、あえて[]で例外を出したほうが不具合の早期発見につながります。