A有一个真正的问题(和头痛)与任务。。。
我在一个入门编程类,我必须写一个函数,给定一个列表,将返回“最大”深度它去。。。 例如:[1,2,3]将返回1,[1,[2,3]]将返回2。。。
我已经写了这段代码(这是我能得到的最好的代码)
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。。。
任何想法或帮助将非常感谢^^非常感谢!!几个星期来我一直在纠结这件事。。。
广度优先,无递归,也适用于其他序列类型:
同样的想法,但占用的内存要少得多:
下面是编写函数的一种方法
我认为您缺少的是使用
max()
让我们先稍微重新表述一下您的需求。
现在,这可以直接转换为代码:
相关问题 更多 >
编程相关推荐