【Python】辞書(dict)のget()でキーから値を取得する!
Pythonのget()を使用すると、辞書(dict)のキーから値を取得することができます。
get()とは辞書のキーから値を返すメソッドであり、キーを指定することで辞書からキーに関連する値を取り出すことができます。
その為、get()のパラメータによって取得する値が決まりますが、辞書に指定するキーが存在しない場合にget()を使用すると「None」を返すようになります。
また、 get()の検索したい文字列にタプルを指定すると、末尾を複数の候補から確認することができます。
今回はPythonのget()で辞書(dict)のキーから値を取得する方法について以下の内容で解説していきます。
⚫︎ 辞書に指定するキーが存在する場合
⚫︎ 辞書に指定するキーが存在しない場合
⚫︎ 辞書のキーが存在しない場合にNone以外の値を返す方法
⚫︎ []で値を取得する時とget()で値を取得する時との違い
目次
get()とは
get()とは、辞書のキーから値を取得するメソッドとなります。
もし、存在しないキーにget()を使用した場合は、「None」を返すようになります。
get()の書き方
get()の書き方は下記となります。
1 |
辞書.get(辞書のキー [, デフォルトの値]) |
get()のパラメータ
⚫︎ 辞書のキー:
辞書で取得したい値に対するキーを指定する
⚫︎ デフォルトの値:
存在しないキーを取得する場合の値を指定する
get()にキーを指定することで、辞書の中にあるキーの値を取得することができます。
また、デフォルトの値を指定すると存在しないキーを取得した場合に返す値を設定することができます。
辞書のキーから値を取得するサンプルコード
get()で辞書のキーから値を取得するサンプルコードを紹介します。
辞書に指定するキーが存在する場合
辞書に指定するキーが存在する場合は、get()はキーに連想する値が返されます。
例
1 2 3 4 5 |
print('get()で辞書の値を取り出す') dict1 = {1: 'value1', 2: 'value2', 3: 'value3', 4: 'value4', 5: 'value5'} print(dict1) print('・キーが5である値を取り出す:', dict1.get(5)) |
出力結果
get()で辞書の値を取り出す
{1: ‘value1’, 2: ‘value2’, 3: ‘value3’, 4: ‘value4’, 5: ‘value5’}
・キーが5である値を取り出す: value5
get()で指定したキーが辞書に存在していますので、キーの値を取得しています。
その為、サンプルコードでは5のキーを指定したので「value5」が取得されています。
辞書に指定するキーが存在しない場合
辞書に指定するキーが存在しない場合は、get()は「None」を返します。
例
1 2 3 4 5 |
print('get()で辞書の値を取り出す') dict1 = {1: 'value1', 2: 'value2', 3: 'value3', 4: 'value4', 5: 'value5'} print(dict1) print('・キーが7である値を取り出す:', dict1.get(7)) |
出力結果
get()で辞書の値を取り出す
{1: ‘value1’, 2: ‘value2’, 3: ‘value3’, 4: ‘value4’, 5: ‘value5’}
・キーが7である値を取り出す: None
辞書に7のキーは存在しませんのでget()は「None」を返しています。
辞書のキーが存在しない場合にNone以外の値を返す方法
辞書のキーが存在しない場合にNone以外の値を返すにはget()のパラメータにデフォルトの値を指定します。
例
1 2 3 4 5 |
print('get()で辞書の値を取り出す') dict1 = {1: 'value1', 2: 'value2', 3: 'value3', 4: 'value4', 5: 'value5'} print(dict1) print('・キーが8である値を取り出す:', dict1.get(8, 'valueZ')) |
出力結果
get()で辞書の値を取り出す
{1: ‘value1’, 2: ‘value2’, 3: ‘value3’, 4: ‘value4’, 5: ‘value5’}
・キーが8である値を取り出す: valueZ
get()のパラメータにデフォルトの値を指定することで、存在しないキーを取得する値を設定することができます。
その為、サンプルコードでは8のキーを指定していますが、get()は「None」を返さず「valueZ」を返しています。
[]で値を取得する時とget()で値を取得する時との違い
get()で辞書の値を取得していましたが、 []を使用することでも辞書の値を取得することもできます。
しかし、get()で値を取得する場合と[]で値を取得する場合とでは大きな違いがあります。
それは「エラーを発生させるかさせないか」です。
例えば、次のコードを見てみましょう。
例
1 2 3 4 5 6 7 8 9 |
print('処理開始') print('get()で辞書の値を取り出す') dict1 = {1: 'value1', 2: 'value2', 3: 'value3', 4: 'value4', 5: 'value5'} print(dict1) print('・キーが10である値を取り出す:', dict1[10]) print('処理終了') |
出力結果
KeyError: 10
[]で辞書に存在しないキーに対する値を取得する場合はKeyErrorというエラーが発生します。
つまり、存在しないキーを取得しようとすると処理全体が止まってしまうことになります。
しかし、get()を使用すると「None」やパラメータで設定した「デフォルトの値」を返すようになりますので処理を止めることなく続けることができます。
例
1 2 3 4 5 6 7 8 9 10 |
print('処理開始') print('get()で辞書の値を取り出す') dict1 = {1: 'value1', 2: 'value2', 3: 'value3', 4: 'value4', 5: 'value5'} print(dict1) print('・キーが9である値を取り出す:', dict1.get(9)) print('・キーが10である値を取り出す:', dict1.get(10, '値を取得できない')) print('処理終了') |
出力結果
処理開始
get()で辞書の値を取り出す
{1: ‘value1’, 2: ‘value2’, 3: ‘value3’, 4: ‘value4’, 5: ‘value5’}
・キーが9である値を取り出す: None
・キーが10である値を取り出す: 値を取得できない
処理終了
キーに対する値を取り出せていませんが、処理開始から処理終了まで処理が実行されています。
今回のポイント
get()で辞書のキーから値を取得
Pythonで辞書のキーから値を取得するにはget()を使用する。
⚫︎ get()のパラメータには辞書のキーやデフォルトの値を指定する
⚫︎ 辞書に指定するキーが存在しない場合、get()は「None」を返す
⚫︎ 辞書のキーが存在しない場合にNone以外の値を返すにはget()のパラメータにデフォルトの値を指定する
⚫︎ []で値を取得する時とget()で値を取得する時との違いは「エラーを発生させるかさせないか」である
([]で存在しないキーを取得しようとするとエラーが発生し処理全体が止まるが、get()で存在しないキーを取得しようとすると値を返すため、処理が止まらず実行される)
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。