pythonのdictionaryでKeyErrorを出さないようにする

  • 38
    Like
  • 0
    Comment
More than 1 year has passed since last update.

KeyError

test = {}
print test['a']

このサンプルを実行すると

KeyError: 'pagename'

の例外が発生します。コレを回避するためには、事前にin, has_keyなどを用いてキーが存在するか否かをチェックする必要があります。

test = {}
if 'a' in test:
    print test['a']
else: 
    print ''

このようなコードになるのですが、上記のような場合はgetという便利なメソッドが用意されているようです。

get(key[, default])

Documentsより引用

もし key が辞書にあれば、 key に対する値を返します。そうでなければ、default を返します。 default が与えられなかった場合、デフォルトでは None となります。そのため、このメソッドは KeyError を送出することはありません。

第二引数を指定すればデフォルト値も指定できるようです。
getを用いて上記コードを書き換えてみます

test = {}
print test.get('a')

とてもシンプルになりました。