如何从Python嵌套字典中提取所有层级完整键序列路径
嵌套字典全路径键提取实现方案
原有代码问题
- 键路径拼接时使用的分隔符为
_,和需求要求的->不匹配 - 缺少完整的函数封装,也没有将生成器结果转为列表格式
修正后完整代码
def find_keys(dct): for k, v in dct.items(): if isinstance(v, dict): for x in find_keys(v): yield "{}->{}".format(k, x) else: yield k dct = {"A": {"AA": "aa", "BB": {"BBB": "bbb", "CCC": "ccc"}}} result = list(find_keys(dct)) print(result)
运行输出
["A->AA", "A->BB->BBB", "A->BB->CCC"]
逻辑说明
保留了原本的递归遍历思路,仅修改了拼接用的分隔符,最终将递归生成的所有路径转为列表即可得到目标输出。
内容的提问来源于stack exchange,提问作者Chandra Shaker Balure
相关产品推荐
相关产品推荐

