python - 如何递归探索Python嵌套字典?

标签 python dictionary tree

我很好奇是否有一种方法可以在 python 中递归地探索嵌套字典。我的意思是,假设我们有一个如下所示的示例:

d = {'a':{'b':{'c':[1,2,3]}}}

获取最里面字典的内容需要什么代码{'c':[1,2,3]} ,遍历ab ?这样的话,写d['a']['b']['c']也不算太费力。但是如果有任意大量的嵌套字典,那么这是不可能的/过于麻烦的。

我的直觉是,我需要创建一个具有键和有效负载属性的通用树类,解析字典并将其存储在我的对象中,我可以将其设计为使用 DFS、BFS 等进行解析。

最佳答案

这是一种递归方法。这个想法是检查当前的字典值是否是 dict 的实例,如果它使用 values 作为输入调用相同的函数,否则返回字典:

def get_inner_dict(d):
    for _, v in d.items():
        if isinstance(v, dict):
            return get_inner_dict(v) 
        else:
            return d

get_inner_dict(d)
# {'c': [1, 2, 3]}

关于python - 如何递归探索Python嵌套字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60230113/

相关文章:

python - 加入列表中的最后一个元素

python - 使用值列表迭代 df 和输出字典

arrays - 循环遍历不同长度的数组 Swift

javascript - DOJO:dojox.grid.TreeGrid + 复选框如何

从树中移除顶点的算法

python - 安装gobject模块?

python - 有没有办法使用 python 将 mp3/音频文件输入到麦克风输入?

javascript - 如何遍历嵌套的键值对并根据数组值对其进行过滤

java - java 中的树 (bst,maxHeap)

python - 在 python 中以不同方式处理语言错误和运行时错误