43

私は Python 3.2.3 を使用しており、返されるデフォルトの文字列値を変更したいと考えています。

from collections import defaultdict
d=defaultdict(str)
d["NonExistent"]

返される値は です''。キーが見つからない場合に"unknown"空の文字列の代わりに返されるようにするにはどうすればよいですか?

4

1 に答える 1

67

defaultdict の引数は、デフォルト値を返す関数 (または呼び出し可能なオブジェクト) です。したがって、目的のデフォルトを返すラムダを渡すことができます。

>>> from collections import defaultdict
>>> d = defaultdict(lambda: 'My default')
>>> d['junk']
'My default'

ラムダを説明するために編集:

ラムダは、名前を付けずに関数を定義するための省略形です。明示的な定義で同じことを行うことができます:

>>> def myDefault():
...     return 'My default'
>>>> d = defaultdict(myDefault)
>>> d['junk']
'My default'

詳細については、ドキュメントを参照してください。

于 2012-06-06T22:41:33.933 に答える