A 在一项作业上遇到了真正的问题(并且令人头疼)......
我正在上一堂入门编程课,我必须编写一个函数,给定一个列表,该函数将返回它所达到的“最大”深度......
例如:[1,2,3] 将返回 1,[1,[2,3]] 将返回 2...
我写了这段代码(这是我能得到的最好的T_T)
def flat(l):
count=0
for item in l:
if isinstance(item,list):
count+= flat(item)
return count+1
然而,它显然不能像它应该的那样工作,因为如果有不计入最大深度的列表,它仍然会提高计数器......
例如:当我将函数与 [1,2,[3,4],5,[6],7] 一起使用时,它应该返回 2,但它返回 3...
任何想法或帮助将不胜感激^^非常感谢!我已经为此苦苦挣扎了好几个星期了......
这是编写该函数的一种方法
depth = lambda L: isinstance(L, list) and max(map(depth, L))+1
我认为你缺少的想法是使用max()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)