Deftdict的嵌套defaultdict是否有办法使defaultdict也成为defaultdict的缺省值?(即无限级递归defaultdict?)我想做的是:x = defaultdict(...stuff...)x[0][1][0]{}所以,我可以x = defaultdict(defaultdict),但这只是第二个层次:x[0]{}x[0][0]KeyError: 0有一些食谱可以做到这一点。但是,仅仅使用正常的defaultdict参数就可以做到这一点吗?注意,这是在询问如何进行无限级别的递归默认设置,因此它不同于Python:defaultdict的defaultdict?,这就是如何做两级违约。我可能会用束束但是当我意识到我不知道该怎么做的时候,这让我很感兴趣。
3 回答

慕标琳琳
TA贡献1830条经验 获得超9个赞
def rec_dd(): return defaultdict(rec_dd)>>> x = rec_dd()>>> x['a']['b']['c']['d']defaultdict(<function rec_dd at 0x7f0dcef81500>, {})>>> print json.dumps(x){"a": {"b": {"c": {"d": {}}}}}
rec_dd = lambda: defaultdict(rec_dd)

凤凰求蛊
TA贡献1825条经验 获得超4个赞
defaultdict
defaultdict
defaultdict(lambda: defaultdict(dict))
它比递归解决方案更明确,因此读者可能更容易理解。 这将启用 defaultdict
不是词典,例如: defaultdict(lambda: defaultdict(list))
或 defaultdict(lambda: defaultdict(set))

小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
tree
tree = (lambda f: f(f))(lambda a: (lambda: defaultdict(a(a))))
x
x = tree()
.
def
tree
from collections import defaultdictdef tree(): def the_tree(): return defaultdict(the_tree) return the_tree()
添加回答
举报
0/150
提交
取消