构建一个默认值为defaultdict的defaultdict

时间:2016-04-10 03:44:35

标签: python dictionary

我的应用程序说参数必须是可调用的还是没有类型?我非常确定这是你用defaultdict作为其值来实例化defaultdict的方式。

dict = defaultdict(defaultdict(set))

2 个答案:

答案 0 :(得分:3)

提供给defaultdict构造函数的参数必须是零参数可调用的(请参阅docs),因此defaultdict(defaultdict)确实有效,但defaultdict(defaultdict(set))没有。你可以“欺骗”一点:

d = defaultdict(lambda: defaultdict(set))

这样你就可以lambda函数的形式提供一个零参数可调用函数,而这个函数在调用时会返回你想要的相应默认值。

答案 1 :(得分:1)

您需要为defaultdict构造函数提供函数,但defauldict(set)defaultdict对象。如果您要构建值为defaultdict的{​​{1}},则可以使用lambdas:

defaultdicts