概要
Pythonの辞書から探す時、Keyが存在しないとエラーが出てしまう。
今まではif
で回避していたが、そういえばexcept KeyError
でも回避できるので、ごく簡単にまとめる。
内容
環境
macOS Catalina
Python 3.7.0
準備
tmp.py
names = {'tokino': 'sora', 'sakura': 'miko'}
print(names['suzuki'])
ここで、names['suzuki']
とすると、エラーが出てしまう。
解決策1 if
を使う
tmp.py
if 'suzuki' not in names:
names['suzuki'] = 'not yet'
print(names['suzuki'])
解決策2 try
を使う
tmp.py
try:
print(names['suzuki'])
except KeyError:
names['suzuki'] = 'not yet'
print(names['suzuki'])
蛇足
単にデフォルト値を欲しいだけなら、
print(names.get('suzuki', 'not yet'))
デフォルト値を設定したいだけなら、
defaultdict
を使うことで解決するかもしれない。
私の例はあまりいい例ではないと思う。
参考にさせていただいた本・頁
特になし
感想
書き方の幅が広がって良かった。
今後
try
の方を使った方が自然な時は、使っていこうと思う。