设置Python的collections.defaultdict的默认字符串值

时间:2012-06-06 22:40:04

标签: python collections

我正在使用Python 3.2.3并希望更改默认返回的字符串值:

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

返回的值为''。如何更改此设置,以便在找不到密钥时,返回"unknown"而不是空字符串?

1 个答案:

答案 0 :(得分:60)

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'

有关详细信息,请参阅the documentation