首页 > 后端开发 > Python教程 > 如何在 Python 中创建无限级递归 defaultdict?

如何在 Python 中创建无限级递归 defaultdict?

Susan Sarandon
发布: 2024-11-25 17:32:15
原创
211 人浏览过

How Can I Create an Infinite-Level Recursive defaultdict in Python?

创建无限级递归defaultdict

在Python中,defaultdict是一个多功能工具,它为字典中缺失的键提供默认值。但是,是否可以创建无限级递归defaultdict?这意味着创建一个 defaultdict,其中默认值也是一个 defaultdict,从而有效地创建嵌套的 defaultdict。

最初,人们可能期望 x = defaultdict(defaultdict) 会创建一个两级 defaultdict,但访问 x[0 ][0] 导致 KeyError。要实现无限级递归,需要另一种方法。

一种解决方案是使用 lambda 函数作为默认值:

x = defaultdict(lambda: defaultdict(dict))
登录后复制

这会创建一个 defaultdict,其中默认值为返回另一个 defaultdict 并以字典作为默认值的函数。这允许无限级递归,因为访问 x[0][1][0] 在嵌套的 defaultdicts 中创建一个空字典。

与其他答案中提出的递归方法相比,这种方法具有几个优点:

  • 显性:嵌套结构更加明确,更容易理解。
  • 灵活性:它允许defaultdict结构的“叶子”是字典以外的东西。例如,defaultdict(lambda: defaultdict(list)) 将创建一个默认字典,其中列表作为叶值。

以上是如何在 Python 中创建无限级递归 defaultdict?的详细内容。更多信息请关注PHP中文网其他相关文章!

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