设置Python的collections.defaultdict的默认string值
我正在使用Python 3.2.3,并希望更改默认返回的string值:
from collections import defaultdict d=defaultdict(str) d["NonExistent"]
返回的值是''
。 我怎样才能改变这个,所以当没有find一个键,返回"unknown"
,而不是空string?
defaultdict的参数是一个返回默认值的函数(或者说是一个可调用的对象)。 所以你可以传入一个返回你想要的默认值的lambda。
>>> from collections import defaultdict >>> d = defaultdict(lambda: 'My default') >>> d['junk'] 'My default'
编辑来解释lambda:
lambda只是简单的定义一个函数而不给它一个名字。 你可以用一个明确的def来做同样的事情:
>>> def myDefault(): ... return 'My default' >>>> d = defaultdict(myDefault) >>> d['junk'] 'My default'
有关更多信息,请参阅文档 。