【发布时间】:2015-04-25 09:40:27
【问题描述】:
def obsah(myList):
def recursion(myList,deep=1,result=(None)):
if type(myList) == list:
for i in range(len(myList)):
if type(myList[i]) == list:
deep+=1
recursion(myList[i],deep,result)
else:
result = (deep,myList[i])
break
else:
result = (0,myList)
return result
return recursion(myList)
这个函数应该返回递归的部门和列表中最后一个元素的值作为元组:
obsah(['a'])
(1, 'a')
>>> obsah([[123]])
(2, 123)
>>> obsah([[[[[(3,7)]]]]])
(5, (3, 7))
>>> obsah(3.14)
(0, 3.14)
>>> obsah([[[1],2]])
(1, None)
instead the outputs are:
(1, 'a')
None
None
(0, 3.14)
None
经过几次测试,我发现我的临时结果很好,但是递归又用默认参数(无)进行了一次,问题出在哪里?它不应该以返回结束吗?
【问题讨论】:
-
你能解释一下最后一个测试用例吗?
-
特别是,我认为你的最后一个测试用例应该是
(3, 1)。 -
对不起,我忘了一件事。如果列表有多个元素,则返回实际深度和 None // 因为我还没有实现它而忘记了