【发布时间】:2014-03-06 22:02:57
【问题描述】:
给定一个嵌套列表 L(这样 L 的每个元素要么是一个整数,要么是一个列表,它本身可以 包含整数或列表,它们可能反过来....等)返回 True i s is in L.
search([1, [2, 3], 4, [5, [6 , [], [8, 9]], 10]], 8)
应该返回 True。
这是我目前所拥有的:
def search (L,s):
"""(list, anytype) _> Bool
Returns true iff s is present in L
"""
if L:
if L[0] == s:
return True
else:
return search (L[1:], s)
else:
return False
如果列表没有嵌套,或者像这样嵌套(嵌套元素是最后一个元素),则此当前代码适用于列表:
[1, 2, 3, [4, 5]]
但不适用于以下情况:
[1, 2, [3, 4], 5]
如何更改我的代码以使其适用于嵌套列表?嵌套元素在列表中的任何位置不是严格意义上的最后一个元素?
感谢任何帮助!
编辑:抱歉,忘记指定它需要递归。
【问题讨论】: