35
我使用Python 3.2.3,並希望更改默認的默認字符串值返回字符串值:設置Python的collections.defaultdict
from collections import defaultdict
d=defaultdict(str)
d["NonExistent"]
返回的值是''
。我怎樣才能改變這個,以便當沒有找到密鑰時,返回"unknown"
而不是空字符串?
我使用Python 3.2.3,並希望更改默認的默認字符串值返回字符串值:設置Python的collections.defaultdict
from collections import defaultdict
d=defaultdict(str)
d["NonExistent"]
返回的值是''
。我怎樣才能改變這個,以便當沒有找到密鑰時,返回"unknown"
而不是空字符串?
defaultdict的參數是一個返回默認值的函數(更確切地說是一個可調用的對象)。所以你可以傳入一個返回你想要的默認值的lambda。
>>> 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'
更多信息,請參見the documentation。