Pythonの辞書のgetメソッドでキーから値を取得(存在しないキーでもOK)
Pythonの辞書(dict
型オブジェクト)で、キーkey
から値value
を取得する方法について、以下の内容を説明する。
- 辞書に存在しないキーを
[]
で指定するとKeyError
get()
メソッドを使ってキーが存在しない場合はデフォルト値を取得
スポンサーリンク
辞書に存在しないキーを[]
で指定するとKeyError
Pythonの辞書(dict
型オブジェクト)では辞書オブジェクト[キー]
でキーkey
の値value
を取得できる。
d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
print(d['key1'])
# val1
source: dict_get.py
この書き方だと、キーkey
が存在しない(含まれていない)場合にエラー(KeyError
例外)が発生してしまう。
# print(d['key4'])
# KeyError: 'key4'
source: dict_get.py
なお、値の取得ではなく追加の場合は存在しないキーを指定しても問題はない。新たなキーとして追加される。
d['key4'] = 'val4'
print(d)
# {'key1': 'val1', 'key2': 'val2', 'key3': 'val3', 'key4': 'val4'}
source: dict_get.py
辞書への要素の追加についての詳細は以下の記事を参照。
また、辞書に特定のキーが存在しているかどうかを判定するにはin
を使う。以下の記事を参照。
get()メソッドを使ってキーが存在しない場合はデフォルト値を取得
辞書オブジェクトのget()
メソッドを使うと、キーが存在しない場合にエラーを発生させずに任意の値(デフォルト値)を取得できる。
第一引数にキーを指定する。キーが存在する場合は対応する値value
が返り、キーが存在しない場合はNone
が返る。
print(d.get('key1'))
# val1
print(d.get('key5'))
# None
source: dict_get.py
None
以外の値を返したい場合は、第二引数にキーが存在しない場合に返すデフォルト値を指定する。
print(d.get('key5', 'NO KEY'))
# NO KEY
print(d.get('key5', 100))
# 100
source: dict_get.py
元の辞書自体は変更されない。
print(d)
# {'key1': 'val1', 'key2': 'val2', 'key3': 'val3', 'key4': 'val4'}
source: dict_get.py
スポンサーリンク