gpt4 book ai didi

python - 在 python 中使用列表进行递归

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:45 25 4
gpt4 key购买 nike

刚开始学python,有一些递归题好像想不通。最烦人的是这个:我需要构建一个函数 ind(e,L),其中 e 是一个 int,L 是一个列表。

通过输入 e 如果它在列表中输出需要是它的索引例如:

ind(42,[0,14,52,42,15]) -> 3

到目前为止,这是我编写的代码,但我得到的索引始终为 0。有人可以向我解释我做错了什么吗?

def location(e,L):
if L == []:
return False
elif e == L[0]:
A = L[:-1].index(e)
return A
else:
return location(e,L[1:])

print(location(14,[1,2,14,1]))

谢谢:)

最佳答案

只有当 e 位于索引 0 时才返回(您可以跳过 L[:-1]... 项,它始终为 0)并传播它不变。不是返回无意义的索引,而是返回递归的次数。最简单的方法是在函数递归时加 1。

def location(element, sequence):
if not sequence:
# e is not in the list at all
# it is not meaningful to return an index
raise IndexError
elif element == sequence[0]:
# we already know where e is
# since we checked it explicitly
return 0
else:
# keep searching in the remainder,
# but increment recursion level by 1
return 1 + location(element, sequence[1:])

关于python - 在 python 中使用列表进行递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58298731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com