繁体   English   中英

构建一个值为defaultdict的defaultdict

[英]Building a defaultdict whose values are defaultdict

我的应用程序说该参数必须是可调用的还是没有类型,是否有任何特殊原因? 我很确定这是您如何使用defaultdict作为其值实例化defaultdict的方法。

dict = defaultdict(defaultdict(set))

提供给defaultdict构造函数的参数必须是可调用零参数的参数(请参见docs ),因此defaultdict(defaultdict)可以工作,而defaultdict(defaultdict(set))不能。 不过,您可以“作弊”一点:

d = defaultdict(lambda: defaultdict(set))

这样,您就可以以lambda函数的形式提供零参数可调用对象,该函数又会在被调用时返回所需的默认值。

您需要为defaultdict构造函数提供一个函数,但defauldict(set)defaultdict对象。 如果您要构建一个defaultdict其值为defaultdicts ,则可以使用lambda:

from collections import defaultdict

dd = lambda: defaultdict(dd)
x = dd()
x['foo']['bar']['foobar'] = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM