Pythonの辞書のgetメソッドでキーから値を取得(存在しないキーでもOK)
Pythonの辞書(dict
型オブジェクト)で、キーkey
から値value
を取得する方法を説明する。
反対に、値value
からキーkey
を取得したい場合は以下の記事を参照。
- 関連記事: Pythonで辞書の値からキーを抽出
辞書のすべての値value
をリストとして取得するには、list()
と辞書のvalues()
メソッドを使う。
d = {'key1': 1, 'key2': 2, 'key3': 3}
print(list(d.values()))
# [1, 2, 3]
source: dict_keys_values_items.py
辞書に存在しないキーを[]
で指定すると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
が返る。
d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
print(d.get('key1'))
# val1
print(d.get('key4'))
# None
source: dict_get.py
None
以外の値を返したい場合は、第二引数にキーが存在しない場合に返すデフォルト値を指定する。
print(d.get('key4', 'NO KEY'))
# NO KEY
print(d.get('key4', 100))
# 100
source: dict_get.py
元の辞書自体は変更されない。
print(d)
# {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
source: dict_get.py