Python辞書のget()メソッド:KeyErrorを回避して安全に値を取得する方法

Pythonで辞書を扱う際、存在しないキーを指定して値を取り出そうとするとKeyErrorが発生し、プログラムが停止してしまいます。これを防ぐためのエレガントな方法が、辞書の**get()メソッド**です。

この記事では、get()メソッドの基本的な使い方と、角括弧[]を使ったアクセスとの違いについて解説します。


目次

エラーを引き起こす角括弧[]でのアクセス

辞書から値を取得する最も基本的な方法は、角括弧[]を使うことです。キーが存在する場合、この方法は問題なく機能します。

# 在庫数を管理する辞書
inventory = {"widgets": 50, "gadgets": 20}

# 存在するキーにアクセス
print(f"ウィジェットの在庫: {inventory['widgets']}")

しかし、辞書に存在しないキーを指定すると、即座にKeyErrorが発生します。

# 存在しないキー 'gizmos' にアクセスしようとする
# print(inventory['gizmos']) # この行はKeyErrorを引き起こします

プログラムを堅牢にするためには、このような予期せぬエラーを避ける仕組みが必要です。


get()メソッドで安全に値を取得する

get()メソッドは、このKeyErrorの問題を解決するために存在します。get()は2つの引数を取ります。

dictionary.get(キー, デフォルト値)

  • 第1引数: 取得したい値に対応するキー
  • 第2引数: もしキーが存在しなかった場合に返すデフォルト値
inventory = {"widgets": 50, "gadgets": 20}

# 存在するキー "gadgets" を取得
num_gadgets = inventory.get("gadgets", 0)
print(f"ガジェットの在庫: {num_gadgets}") # 出力: 20

# 存在しないキー "gizmos" を取得
num_gizmos = inventory.get("gizmos", 0)
print(f"ギズモの在庫: {num_gizmos}")   # 出力: 0

inventory.get("gizmos", 0)の呼び出しでは、"gizmos"というキーが存在しないため、KeyErrorを発生させる代わりに、指定されたデフォルト値である0が返されます。これにより、プログラムは停止することなく処理を続けることができます。


デフォルト値の省略

get()メソッドの第2引数(デフォルト値)は省略可能です。もし省略した場合、キーが存在しないときには**None**という特別な値が返されます。

Python

inventory = {"widgets": 50, "gadgets": 20}

result = inventory.get("gizmos")
print(result) # 出力: None

まとめ

  • 角括弧[]によるアクセスは、キーが必ず存在すると確信している場合に適しています。存在しないとKeyErrorが発生します。
  • get()メソッドは、キーが存在するかわからない場合に適しています。キーが存在しなくてもエラーにならず、指定したデフォルト値(またはNone)を返します。

get()メソッドを使いこなすことで、より安全で柔軟な辞書の操作が可能になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次