Python 3.2.3を使用しており、返されるデフォルトの文字列値を変更したい:
from collections import defaultdict
d=defaultdict(str)
d["NonExistent"]
返される値は''
。これを変更して、キーが見つからないときに"unknown"
は空の文字列の代わりに返されますか?
Defaultdictの引数は、デフォルト値を返す関数(または、呼び出し可能なオブジェクト)です。したがって、希望するデフォルトを返すラムダを渡すことができます。
>>> from collections import defaultdict
>>> d = defaultdict(lambda: 'My default')
>>> d['junk']
'My default'
ラムダを説明するために編集:
ラムダは、名前を付けずに関数を定義するための省略形にすぎません。明示的なdefでも同じことができます。
>>> def myDefault():
... return 'My default'
>>>> d = defaultdict(myDefault)
>>> d['junk']
'My default'
詳細は ドキュメント を参照してください。