Python递归函数来获取列表上的下一项



我对递归还很陌生,我必须为我的家庭作业解决一个问题,该问题要求定义一个递归函数来获取列表中给定项上的下一个元素。我制作了迭代版本,但我不知道如何编写递归版本。

def next_value(lst,v):
ind = lst.index(v)
list1_result = lst[ind+1]
return list1_result
a = [4, 2, 10, 3, 2, 5]
print(next_value(a,10))
# output: 3

您的解决方案看起来不错,但如果它必须是递归的,下面是一个示例实现:

def next_value(lst, v):
if (len(lst) < 2):
return None
if (lst[0] == v):
return lst[1]
return next_value(lst[1:], v)

基本上,我们传递来自相同list的切片,直到找到具有给定值的元素。如果长度小于2,则该列表要么为空,要么我们已经查看了所有内容。在这种情况下,我们返回None来表示没有有效的答案。

最新更新