You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现含列表的嵌套字典全路径提取函数需求

Python 实现嵌套字典/列表的全路径遍历函数

以下是满足需求的Python函数,可递归遍历包含列表的嵌套字典,生成所有可能的路径:

def get_all_paths(nested_dict):
    paths = []
    
    def traverse(current_obj, current_path):
        if isinstance(current_obj, dict):
            for key, value in current_obj.items():
                new_path = f"{current_path}/{key}" if current_path else key
                traverse(value, new_path)
        elif isinstance(current_obj, list):
            for item in current_obj:
                traverse(item, current_path)
        else:
            if current_obj == "":
                paths.append(f"{current_path}/")
            else:
                paths.append(f"{current_path}/{current_obj}")
    
    for key, value in nested_dict.items():
        traverse(value, key)
    
    return paths

测试示例

使用你提供的输入变量测试:

var = {
    "a": "b",
    "c": ["d", "e", {"f": "", "h": ["i", {"j": "q"} ]}],
    "m": "",
    "n": ["d", "e", {"b": "", "c": "", "f": "r"}],
    "r": "r",
    "k": ["d", "t", "h"]
}

# 获取所有路径并打印
for path in get_all_paths(var):
    print(path)

运行后输出的路径内容与示例一致,顺序可能略有不同(需求允许顺序不固定)。

逻辑说明

  • 递归遍历嵌套结构,自动识别字典、列表和普通元素
  • 遇到字典时,将键拼接到当前路径后继续遍历对应值
  • 遇到列表时,直接遍历列表内的每个元素,路径保持当前层级
  • 遇到普通元素时:若为空字符串,路径结尾加/;否则将元素拼接到路径末尾

内容的提问来源于stack exchange,提问作者AEP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:25:05