gpt4 book ai didi

python递归列表问题

转载 作者:太空狗 更新时间:2023-10-30 02:18:12 25 4
gpt4 key购买 nike

1.我遇到了这段代码:Python Recursion and list

def search(lst, key):
if not lst: # base case: list is empty
return False
elif lst[0] == key: # base case: current element is searched element
return True
else: # recursive case: advance to next element in list
return search(lst[1:], key)

递归搜索是否可以从第一个元素开始作为search(lst[0:],key)?为什么要单独处理第一个元素?

2.为什么这是递归?

selfref_list = [1, 2, 3]
selfref_list.append(selfref_list)

最佳答案

关于第一个问题:

如果您以 search(lst[0:], key) 开始递归,那么您将进入无限递归。请注意,要停止递归,每次都需要一个比以前更小的列表,search(lst[1:], key) 就是这种情况。

此外,至于为什么第一个元素被单独处理,请注意您需要一次对 key 一个元素进行比较,该元素是 lst[0].

所以在这个递归中,你把问题分成两部分:(1)你检查列表的某个元素是否等于你的键(这个元素总是当前列表的第一个元素),以及 (2) 在列表的rest 中进行递归调用。

关于第二个问题:

这不是递归:

selfref_list = [1, 2, 3]
selfref_list.append(selfref_list)

这些行的作用是创建一个列表,其中第 4 个元素是同一个列表:

>>> selfref_list == selfref_list[3] 
True

但这与函数中的递归无关。

关于python递归列表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36958705/

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