确保将递归调用的结果分配给 depth 。此外,正如@amit所说,请考虑使用 max, 以便您可以使用多个键值对(树状结构)处理字典。
def dict_depth(d, depth=0):
if not isinstance(d, dict) or not d:
return depth
return max(dict_depth(v, depth+1) for k, v in d.iteritems())
>>> myDict = {'leve1_key1': {'level2_key1':
{'level3_key1': {'level4_key_1':
{'level5_key1': 'level5_value1'}}}}}
>>> dict_depth(myDict)
5