Pythonのdictionaryでいちいちinでチェックしない!

Pythonの辞書/dictionaryで、KeyErrorが出ちゃうな…hasKeyとかinとか、とにかくif文で全部書くのは嫌だった…

調べたら…あるじゃん!!

pythonのdictionaryでKeyErrorを出さないようにする
http://qiita.com/sue71/items/b7f5c9373d0af587e256

内容を整理すると…dictionaryにはgetというfunctionがあり、これで呼び出した場合、あったらその値が、なかったらNone(初期値)が返ってくるとのことです。

>>> dic = {}
>>> print dic["a"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> print dic.get("a")
None
>>> dic["test"] = "Hello!"
>>> print dic["test"]
Hello!
>>> print dic.get("test")
Hello!
>>> print dic.get("a")
None

これで、KeyErrorにならなくてすむなーって思ったけど、弊害もある。それは、この呼び出しているKeyの文字列があっているのかのチェックができないということだ!なので、テストケースはしっかり、取れるときと取れないときの両方テストすべきだと思う!

以上!

スポンサーリンク
hige1
hige1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
hige1