我很好奇是否有一种方法可以在 python 中递归地探索嵌套字典。我的意思是,假设我们有一个如下所示的示例:
d = {'a':{'b':{'c':[1,2,3]}}}
获取最里面字典的内容需要什么代码{'c':[1,2,3]}
,遍历a
和b
?这样的话,写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/