collections.defaultdictで辞書の初期値を設定する
辞書で単語の出現回数をカウントするようなコードのサンプル
初めて登場した単語のときだけ、インクリメントじゃなくて1を入れる処理をする必要がある
data = open("sample.txt").read() words = data.split() d = {} for word in words: if word in d: d[word] += 1 else: d[word] = 1 print d
collections.defaultdictを使うと最初から初期値を設定できるので便利
# coding=utf-8 import collections data = open("sample.txt").read() words = data.split() d = collections.defaultdict(int) for word in words: d[word] += 1 print d
defaultdictに渡す引数はdefault_factoryといって、存在しないキーの値を参照したときはdefault_factoryを引数なしで呼び出した値がデフォルト値になる。
上記のコードだとint()がデフォルト値になる
他にsetやlistを渡す使い道が考えられる
参考 : 8.3. collections ― 高性能なコンテナ・データ型 ― Python 2.7ja1 documentation