辞書

[Python] 辞書からgetメソッドで値を取得する方法

今回は、Pythonで辞書からgetメソッドで値を取得する方法についてご紹介します。

getメソッドとは

Pythonの辞書(dict型)には、角括弧([])でアクセスする方法と、getメソッドを利用してアクセスする方法があります。

getメソッドは、指定したキーが存在する場合はその値を返し、存在しない場合はエラーを出さずに既定値(デフォルト値)を返す便利なメソッドです。

キーが見つからなかったときに、意図しないKeyErrorでプログラムが停止しないようにするためによく使用されます。

直接アクセスとの違い

辞書の値にアクセスする一般的な方法は、角括弧でキーを指定する直接アクセスです。

例えば、sample_dict[“B”]のように書くと、そのキーに対応する値を取得できます。

しかし、もしキーが存在しない場合はKeyErrorが発生し、プログラムがエラーで停止してしまいます。

一方、getメソッドを用いる場合は、同じキーが存在しなかったときにエラーは発生せず、None(または指定したデフォルト値)が返るため、安全に値を取得できます。

getメソッドの基本的な使い方

getメソッドの基本構文は以下のとおりです。

第二引数でデフォルト値を指定することで、キーが存在しない場合に返される値を任意のものに設定できます。

基本的な例

次のような辞書を用意し、getメソッドを使って値を取得してみます。

実行結果

banana

None

Not Found

この例では、キー「B」は存在するのでその値bananaが返されます。

キー「D」は存在しないため、デフォルト値を指定しない場合にはNoneが、指定した場合にはNot Foundが返ります。

ネストされた辞書での活用

ネストされた辞書において、getメソッドを連鎖させることで階層的に安全に値を取得できます。

実行結果

42

Default Value

このように、キーがない場合に備えて第二引数に空の辞書({})や文字列などを指定しておくと、想定外のエラーを避けながら値の取得を進められます。

ただし、途中で返ってきた値が辞書以外の型だった場合に、さらにgetを呼び出すとエラーになる点に注意が必要です。

よくあるエラーと注意点

getメソッドではKeyErrorが発生しにくい反面、Noneや意図しないデフォルト値が返る場合があります。

実装時には以下の点を押さえておくと便利です。

  • デフォルト値を指定しないとNoneが返る
  • ネストされた辞書にアクセスする際は、各階層で辞書が取得できているかを確認
  • getメソッドは読み取り専用なので、辞書の内容を直接変更しない
  • キーが存在しないときに値を登録しながら取得したい場合は、setdefaultメソッドの使用を検討

以下のコードでは、キーが存在しない時にNoneが返るケースをシミュレーションしています。

実行結果

Xの値: 100
Zの値: None

キー「Z」が存在しないため、値としてNoneが返っています。

このような場合に、意図しないエラーやデータ型の不整合を防ぐには、適切なデフォルト値を設定するか、返り値をチェックする仕組みを設けると安心です。

まとめ

getメソッドは辞書から安全に値を取得するための有用な手段です。

角括弧でアクセスする場合よりもKeyErrorのリスクが低く、自由にデフォルト値を設定できます。

ネストされた構造にも活用しやすいため、柔軟なエラー回避と可読性を両立できます。