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…
任何想法或帮助将不胜感激^^非常感谢!我已经为此苦苦挣扎了几个星期了……
原文由 dhcarmona 发布,翻译遵循 CC BY-SA 4.0 许可协议
广度优先,没有递归,它也适用于其他序列类型:
同样的想法,但内存消耗少得多: