43

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

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

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

4

1 回答 1

67

defaultdict 的参数是一个返回默认值的函数(或者更确切地说,一个可调用对象)。所以你可以传入一个返回你想要的默认值的 lambda。

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

编辑解释 lambda:

lambda 只是定义函数而不给它命名的简写。您可以使用显式定义执行相同的操作:

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

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

于 2012-06-06T22:41:33.933 回答