1
爲什麼reduce()
不與defaultdict
對象在以下情況下工作:減少不能用於collections.defaultdict?
>>> from collections import defaultdict
>>> d = defaultdict(lambda: defaultdict(int))
>>> reduce(dict.get, [1,2], d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'get' requires a 'dict' object but received a 'NoneType'
以上reduce
相當於d[1][2]
,所以我預計0
,即默認返回值作爲輸出,但我得到了一個NoneType
例外代替。
如果我使用d[1][2]
,如下所示正常工作:
>>> d[1][2]
0
難道我做錯了什麼?
爲什麼使用dict .__ getitem__而不是defaultdict .__ getitem__是正確的? – Hammerite
@Hammerite:你可以使用; 'defaultdict'是'dict'的一個子類。 –
完美!謝謝 –