首页  >  文章  >  后端开发  >  如何在给定嵌套列表的情况下构造具有可变深度的多级字典?

如何在给定嵌套列表的情况下构造具有可变深度的多级字典?

Patricia Arquette
Patricia Arquette原创
2024-10-17 11:10:30273浏览

How to Construct a Multi-Level Dictionary with Variable Depth Given a Nested List?

构建一个不同深度的多级字典

问题:

如何构建一个多级字典具有可变深度,给定嵌套值列表?考虑以下示例列表:

<code>[A][B1][C1] = 1
[A][B1][C2] = 2
[A][B2] = 3
[D][E][F][G] = 4</code>

所需的输出是类似于以下结构的多级字典:

<code>A
--B1
-----C1 = 1
-----C2 = 1
--B2 = 3
D
--E
----F
------G = 4</code>

解决方案:

使用 defaultdict 模块中的 collections,可以动态创建嵌套字典,而不需要硬编码插入语句。当未找到现有键时,defaultdict 返回默认值。实现方式如下:

<code class="python">from collections import defaultdict

# Define a function to create a nested dictionary with any level of depth
nested_dict = lambda: defaultdict(nested_dict)

# Create the nested dictionary using the nested_dict function
nest = nested_dict()

# Populate the nested dictionary with the given data
nest[0][1][2][3][4][5] = 6

print(nest)</code>

此代码将创建一个深度为 7 的嵌套字典,其中键 [0][1][2][3][4][5] 的值设置为 6。可以使用以下方式访问嵌套字典相同的密钥结构,允许动态创建和检索各个级别的数据。

以上是如何在给定嵌套列表的情况下构造具有可变深度的多级字典?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn