辞書に初期値がない場合は、デフォルト値で初期化する

Pythonの辞書(Rubyで言うところのハッシュ)は、存在しないキーでアクセスするとエラーになります。

>>> data = {}
>>> data['a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> 

これを防ぐためには、in演算子でキーが存在するかチェックすればいいのですが、けっこう面倒。

代わりに、collections.defaultdict()関数を使います。

>>> from collections import defaultdict
>>> data = defaultdict(int)
>>> data['a'] += 1
>>> data
defaultdict(<class 'int'>, {'a': 1})
>>> data['a'] += 1
defaultdict(<class 'int'>, {'a': 2})
>>> 

defaultdict関数の引数は、関数(上記ではint)です。

参考文献

入門Python 3