python のディクショナリは存在しないキーを参照すると KeyError が発生するんで使用前に has_key() を使ってキーの存在を調べたりする必要がある。複数のディクショナリを使ってるときに、 if 文をいっぱい書くのが面倒だなぁと思ってたんだけど、setdefault() を使えば面倒が一気に解消されることを知った。 存在しないキーを参照するとこうなる。 >>> d = {} >>> d['hoge'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'hoge' setdefault() を使用するとこんな感じ >>> d = {} >>> d.setdefault('hoge', 'fuga') 'fuga' >>> d {'hoge': 'fuga'} >>
![ディクショナリの setdefault が便利 - s-n-kのブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)