如何从含各级键的列表列表创建任意深度的嵌套字典?
生成指定结构的嵌套字典
我来帮你搞定这个多级嵌套字典的生成问题!根据你给出的示例,我们可以通过从内到外逐层构建的方式来实现需求。
实现思路
核心思路是从最内层(最后一个子列表)开始,逐层向外扩展:
- 先创建最底层的字典,每个键对应空列表;
- 倒序遍历前面的每一层,把当前已构建的字典作为上一层每个键的值(注意要复制字典,避免所有键共享同一个引用);
- 最终得到完整的嵌套结构。
代码实现
def build_nested_dict(levels): if not levels: return {} # 初始化最内层字典:最后一层的键对应空列表 current_dict = {key: [] for key in levels[-1]} # 从倒数第二层开始,逐层向上构建 for level in reversed(levels[:-1]): # 为当前层的每个键复制一份当前的字典作为值 current_dict = {key: current_dict.copy() for key in level} return current_dict # 测试你的示例 DL = [['A1'],['A11','A12'],['B1'],['B11','B12']] result = build_nested_dict(DL) print(result)
输出结果
运行上述代码后,你会得到完全符合需求的嵌套字典:
{'A1': {'A11': {'B1': {'B11': [], 'B12': []}}, 'A12': {'B1': {'B11': [], 'B12': []}}}}
额外说明
- 如果输入的层级列表只有一层(比如
DL = [['X', 'Y']]),函数会直接返回{'X': [], 'Y': []},符合预期; - 使用
copy()是为了确保每一层的每个键都拥有独立的子字典,避免修改一个键的子结构时影响其他键。
内容的提问来源于stack exchange,提问作者StackJack
相关产品推荐
相关产品推荐

