我的应用程序要求参数必须是可调用类型或无类型,这有什么特殊的原因吗?我很确定这就是你用defaultdict作为它的值来实例化defaultdict的方法。
dict = defaultdict(defaultdict(set))发布于 2016-04-10 11:49:50
提供给defaultdict构造函数的参数必须是可调用的零参数(参见docs),因此defaultdict(defaultdict)可以工作,但defaultdict(defaultdict(set))不能。不过,你可以“作弊”一下:
d = defaultdict(lambda: defaultdict(set))这样,您可以以lambda函数的形式提供一个可调用的零参数,当调用该函数时,该函数将返回所需的适当默认值。
发布于 2016-04-10 11:50:11
您需要为defaultdict构造函数提供一个函数,但是defauldict(set)是defaultdict对象。如果你想构建一个值为defaultdicts的defaultdict,你可以使用lambda:
from collections import defaultdict
dd = lambda: defaultdict(dd)
x = dd()
x['foo']['bar']['foobar'] = 1https://stackoverflow.com/questions/36525522
复制相似问题