如何创建无限嵌套的默认字典?换句话说,是否可以将一个defaultdict的默认值设置为另一个defaultdict?这将允许任意深度的嵌套结构根据需要自动创建必要的字典。
例如,考虑以下代码:
x = defaultdict(...stuff...) x[0][1][0] {}
在这种情况下,x[0] 将是一个defaultdict,x[0][1]将是另一个defaultdict,x[0][1][0]将是一个标准字典。
虽然可以创建包含其他defaultdict 的defaultdict,但标准defaultdict 参数并不直接支持它。但是,有一个简单的解决方法,允许多级嵌套 defaultdict。
不要将默认值定义为另一个 defaultdict,而是将默认值定义为返回 defaultdict 的 lambda 函数:
x = defaultdict(lambda: defaultdict(dict))
此代码创建一个两级defaultdict,其中x[0]是一个defaultdict,x[0][1]是另一个defaultdict,其值为字典。
对于无限级嵌套,只需向 lambda 函数添加额外的级别即可:
x = defaultdict(lambda: defaultdict(lambda: defaultdict(...)))
此解决方法可以创建任意嵌套的默认字典,提供一种管理复杂数据的便捷方法具有自动价值创造的结构。
以上是如何在 Python 中创建无限嵌套的 defaultdict?的详细内容。更多信息请关注PHP中文网其他相关文章!