【Python】辞書のキー有無で条件分岐:get メソッド

  • Category: Python
  • Tags: Python

  • Posted on: 2022-02-06

  • Updated on: 2022-09-04

本記事では辞書のキーを使って条件分岐をする方法をご紹介します.

事前準備

まずはサンプルとなる辞書を作成します.


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メソッドは便利ですね.
色々な情報を辞書に詰め込んで処理することが多く,条件によってはキーがあったりなかったりするのでこの方法を使っています.


  1. デフォルトではNoneを返します.上記のコードではキーが存在しない場合に返す値を指定していないのでNoneが返ってきています. 

  2. 「まぐろキー」の値が10001200になりました.