设置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' 

有关更多信息,请参阅文档 。