銀河鉄道

Python|dictionaryから値を取得する2つの違い

サムネイル
[Python]getdictionary

dictionaryから
厳格に・安全に
取得する
取得方法は2つ
  • ["key"]
    • 厳格
  • .get(“key”, デフォルト値)
    • 安全

どう違う?

✅ 結論:

  • ["key"]
    • そのキーが絶対に存在する前提
  • .get("key", デフォルト値)
    • キーが存在しなければ デフォルト値を返す

🔍 Python辞書の仕様による違い

厳格|dict["key"]

  • キーが存在しなければ KeyError を出す
  • 安心して使えるのは「そのキーが確実にあるとわかってる時」だけ
d = {"name": "usagi"}
print(d["name"])     # OK
print(d["age"])      # ❌ KeyError

安全|dict.get("key")

  • キーがなくてもエラーを出さずに None(または指定した値)を返す
  • 不完全な辞書・動的なキーと相性◎
d = {"name": "usagi"}
print(d.get("name"))        # → "usagi"
print(d.get("age"))         # → None
print(d.get("age", "N/A"))  # → "N/A"

Exists 確認をしなくても
デフォルト値が入るから
べんり

✅ Python公式ドキュメントより(意訳)

dict.get(key[, default]) は、指定されたキーに対応する値を返す。
キーが存在しない場合は、default を返す(省略時は None)。
→ 例外を発生させたくないときに使う。

📚 出典: Python公式辞書型の解説

☝️ 設計メモ

  • 確定しているロジックの場合
    • [] でいい
  • 出力・ログ・UIなど柔軟さが求められる場合
    • .get() が推奨
    • デフォルト値の設定も推奨

print_result() みたいに

外から辞書を受け取る共通関数には

.get("key", デフォルト値)を使うべし。

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧

coming soon