【发布时间】:2012-03-21 06:51:10
【问题描述】:
生日,
我试图找到一个搜索字典的函数的递归深度,但我有点迷失了...... 目前我有类似的东西:
myDict = {'leve1_key1': {'level2_key1': {'level3_key1': {'level4_key_1': {'level5_key1': 'level5_value1'}}}}}
而且我想知道嵌套最多的字典的嵌套程度...所以我执行以下操作...
def dict_depth(d, depth):
for i in d.keys():
if type(d[i]) is dict:
newDict = d[i]
dict_depth(newDict, depth+1)
return depth
print dict_depth(myDict, 0)
唯一的问题是,递归循环只返回最终值(0)的返回值。
如果我输入打印语句
for i in d.keys():那么我至少可以打印递归的最高值,但是返回值是另一回事...
我确定这很简单 - 我刚刚得到 jellybrain。
干杯
【问题讨论】:
-
这里没有任何限制(可用内存除外)。每个嵌套字典都是一个新对象,对它的父对象一无所知。
-
但是您的代码可能会遇到堆栈溢出。这与任何字典限制无关。
标签: python recursion dictionary