如何在 Python 中创建无限嵌套的 defaultdict?

Linda Hamilton
发布: 2024-11-24 04:35:11
原创
594 人浏览过

How Can I Create an Infinitely Nested defaultdict in Python?

无限级嵌套的默认字典

问题

如何创建无限嵌套的默认字典?换句话说,是否可以将一个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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板