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 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
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贡献1827条经验 获得超7个赞
defaultdict
defaultdict
defaultdict(lambda: defaultdict(dict))
它比递归解决方案更明确,因此读者可能更容易理解。 这将启用 defaultdict
不是词典,例如: defaultdict(lambda: defaultdict(list))
或 defaultdict(lambda: defaultdict(set))
江户川乱折腾
TA贡献1851条经验 获得超5个赞
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
提交
取消