今天
我试图找到一个函数的递归深度,这个函数拖网查字典,我有点迷路了。。。 目前我有一些东西像:
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():
然后我至少可以打印递归的最高值,但是返回值是另一回事。。。
我确信这很简单-我只是有点神经质。
干杯
这里的代码工作良好,如果连列表也包括在内。
确保将递归调用的结果分配给深度。另外,正如@amit所说,考虑使用max以便可以处理具有多个键值对(树状结构)的dict。
您应该存储从递归调用中返回的值,并返回找到的最大值,否则-您调用递归函数时不会对返回值执行任何操作![并按预期返回0,因为它从未更改]
相关问题 更多 >
编程相关推荐