きゃっとぐるーぶ

忘れてもいいようにメモを取っても、メモを取ったことを忘れる男の備忘録

PythonのdictでkeyがなくてもKeyError例外をださない方法

KeyErrorの例外をキャッチするために例外を書いてたが、dic.get()を使えばそんな必要もない。公式ドキュメントを読むのが大事といいますが、ほんとですね。

dic = {"id":"1000", "name":"okaz", "group":['sys', 'wheel', 'optical']}

print(dic["id"])

print(dic.get("id"))

#1000
#1000

存在しないkeyを指定すると例外になる

print(dic["firstname"])

KeyError       Traceback (most recent call last)
<ipython-input-5-8c387397d402> in <module>()
      1 dic = {"id":"1000", "name":"okaz", "group":['sys', 'wheel', 'optical']}
      2 
----> 3 dic["firstname"]

KeyError: 'firstname'

.get()を使うと、keyが存在しなければdefaultに設定された値を返す。defaultを指定しなければNoneを返す。

print(dic.get("firstname"))


dic.get("firstname") == True
# False
dic.get("firstname") == False
# False
dic.get("firstname") == None
# True

dic.get("firstname", 'naiyo')
# naiyo

ビジネスPython超入門

ビジネスPython超入門