【发布时间】:2011-08-27 16:50:33
【问题描述】:
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...
任何想法或帮助将不胜感激^^非常感谢!我已经为此苦苦挣扎了好几个星期了...
【问题讨论】:
-
我认为你想要的词是“深度”,而不是“深度”。
-
附带说明:查看 PEP-8。立即形成风格习惯会很好。对于初学者,请使用
L作为列表,而不是l(看起来像1)。 -
@duffymo 谢谢 ^^ 我的错,我想很明显英语不是我的第一语言 :-)
-
@orokusaki 这真的很有趣^^谢谢!我什至不知道它存在......
-
+1 表明这是家庭作业,然后适当地提出问题。这个问题既有趣,又展示了迄今为止的尝试。