小编ok1*_*ump的帖子

使用嵌套键对Dict进行Python递归搜索

我最近不得不用嵌套的字典/列表组合解决实际数据系统中的问题.我在这方面工作了很长一段时间并提出了一个解决方案,但我非常不满意.我不得不求助于使用globals()和命名的临时全局参数.

我不喜欢使用全局变量.这只是要求注射漏洞.我觉得必须有更好的方法来执行这项任务而不诉诸全局变量.

问题数据集:

d = {
    "k":1,
    "stuff":"s1",
    "l":{"m":[
        {
            "k":2,
            "stuff":"s2",
            "l":None
        },
        {
            "k":3,
            "stuff":"s3",
            "l":{"m":[
                {
                    "k":4,
                    "stuff":"s4",
                    "l":None
                },
                {
                    "k":5,
                    "stuff":"s5",
                    "l":{"m":[
                        {
                            "k":6,
                            "stuff":"s6",
                            "l":None
                        },
                    ]}
                },
            ]}
        },
    ]}
}
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[{'k': 1, 'stuff': 's1'},
 {'k': 2, 'stuff': 's2'},
 {'k': 3, 'stuff': 's3'},
 {'k': 4, 'stuff': 's4'},
 {'k': 5, 'stuff': 's5'},
 {'k': 6, 'stuff': 's6'}]
Run Code Online (Sandbox Code Playgroud)

我的解决方案

def _get_recursive_results(d, iter_key, get_keys):
    if not 'h' in globals():
        global h
        h = [] …
Run Code Online (Sandbox Code Playgroud)

python recursion dictionary global list

6
推荐指数
2
解决办法
1493
查看次数

标签 统计

dictionary ×1

global ×1

list ×1

python ×1

recursion ×1