本記事では辞書のキーを使って条件分岐をする方法をご紹介します.
事前準備
まずはサンプルとなる辞書を作成します.
d = {'ほたて': 1000, 'えび': 200, 'かに': 30}
辞書のキーで値を取得する方法(2つ)
辞書のキーを指定してその値を取得する方法は以下の2種類があります.
辞書['キー名']
辞書.get('キー名')
それぞれの方法を使って「ほたて」キーの値を取得してみます.
# []を使用してキーの値を取得
print(d['ほたて'])
# getメソッドでキーの値を取得
print(d.get('ほたて'))
1000 1000
それぞれ「ほたて」キーの値である1000
が取得できていますね.
なおget
メソッドはPython組み込みのメソッドです.
2つの方法の違い
両者の違いは指定したキーが存在しなかった際の挙動です.
辞書['キー名']
では指定したキーが存在しなかった場合KeyError
となってしまいます.
# []を使用する場合,存在しないキーを指定するとKeyError
print(d['まぐろ'])
KeyError: 'まぐろ'
一方でget
メソッドを使用した方法では指定したキーが存在しない場合None
を返します.
(KeyError
は発生しません)
# getメソッドの場合はKeyErrorとはならず,Noneを返す
print(d.get('まぐろ'))
None
またget
メソッドでは指定したキーが存在しない場合に返す値を指定することができます.1
# getメソッドの第二引数にはキーが存在しない際の返り値を指定できる
print(d.get('まぐろ', '「まぐろ」キーがありません...'))
「まぐろ」キーがありません...
辞書のキー有無で条件分岐
get
メソッドを使用し,キーが存在しない場合はFalse
を返すようなコードを作成します.
そのコードをif
文の条件式に入れて「キーが存在すれば・・・」という処理が可能です.
# 辞書の定義
d = {'まぐろ': 1000, 'えび': 200, 'かに': 30}
# if文と組み合わせてキーの有無に応じた条件分岐
if d.get('まぐろ', False):
d['まぐろ'] = 1200
print(d)
{'まぐろ': 1200, 'えび': 200, 'かに': 30}
解説
if
文の条件式で「まぐろキーが存在すれば」としています.
もしまぐろキーがない場合はget
メソッドによってFalse
が返されるのでif
文内の処理は実行されません.
今回の辞書には「まぐろキー」が存在するためif
文内の処理が実行されています.2
ひとこと
get
メソッドは便利ですね.
色々な情報を辞書に詰め込んで処理することが多く,条件によってはキーがあったりなかったりするのでこの方法を使っています.