首页 > 后端开发 > Python教程 > defaultdict 可以递归地作为其自身的默认值进行无限嵌套吗?

defaultdict 可以递归地作为其自身的默认值进行无限嵌套吗?

Susan Sarandon
发布: 2024-11-28 02:35:12
原创
477 人浏览过

Can a defaultdict Recursively Serve as its Own Default Value for Infinite Nesting?

创建 defaultdict 的无限嵌套 defaultdict

问题:

是否可以创建一个也用作 defaultdict 的 defaultdict本身的默认值,导致无限级递归defaultdict?目标是允许访问深层嵌套元素而不会遇到 KeyError 异常。

答案:

虽然其他答案解决了“无限多个”嵌套默认字典的创建问题,他们忽略了对两层深度默认字典的具体需求。为此,可以使用以下代码:

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

此构造提供以下优点:

  • 显式:更加简单易懂比递归方法。
  • 可定制的叶子:它允许将 defaultdict 的“leaf”值自定义为字典以外的其他内容,例如列表或集合。

示例:

x = defaultdict(lambda: defaultdict(dict))
x[0][1][0]
{}  # returns an empty dictionary
登录后复制

以上是defaultdict 可以递归地作为其自身的默认值进行无限嵌套吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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