如何在Python中的嵌套字典中检索嵌套字典的深度?
How to retrieve the depth of nested dictionaries in nested dictionaries in Python?
我不确定我是不是脑子有问题,或者这真的应该是一个挑战,但如果键不是,我无法弄清楚如何检查嵌套字典的深度已知。
这是我正在尝试做的事情的一个例子(以最 simple/efficient 的方式):
最好,在不知道键和值的情况下,我可以通过某种方式确定该字典的最大深度 -
nested_dict = {
'nest1': {
'nest2': {
'nest3': 'val'
},
'unknown_key', 'val',
'unknown_key': 'val'
}
}
如果这有意义,请告诉我。
检查它是否是字典,如果是,遍历值并递归调用函数获取值的最大值。
PS : Dict 是语法错误,已修复
def max_depth(d):
if isinstance(d, dict):
return 1 + max((max_depth(value) for value in d.values()), default=0)
return 0
nested_dict = {'nest1': {'nest2': {'nest3': 'val'}, 'unknown_key': 'val', 'unknown_key': 'val'}}
print(max_depth(nested_dict))
输出
3
我不确定我是不是脑子有问题,或者这真的应该是一个挑战,但如果键不是,我无法弄清楚如何检查嵌套字典的深度已知。
这是我正在尝试做的事情的一个例子(以最 simple/efficient 的方式):
最好,在不知道键和值的情况下,我可以通过某种方式确定该字典的最大深度 -
nested_dict = {
'nest1': {
'nest2': {
'nest3': 'val'
},
'unknown_key', 'val',
'unknown_key': 'val'
}
}
如果这有意义,请告诉我。
检查它是否是字典,如果是,遍历值并递归调用函数获取值的最大值。
PS : Dict 是语法错误,已修复
def max_depth(d):
if isinstance(d, dict):
return 1 + max((max_depth(value) for value in d.values()), default=0)
return 0
nested_dict = {'nest1': {'nest2': {'nest3': 'val'}, 'unknown_key': 'val', 'unknown_key': 'val'}}
print(max_depth(nested_dict))
输出
3