Python 3.x 如何使用递归函数在给定列表中找到最小值

Python 3.x 如何使用递归函数在给定列表中找到最小值,python-3.x,Python 3.x,我试图编写一个递归函数来查找列表中的最小值,但我仍然坚持下一步要做什么 def findRecMin(aList): if(len(aList)==1): return aList[0] else: min_of_the_rest = findRecMin(aList[1:]) myList = [16, 20, 3, 37, 95, 49, 61] n = findRecMin(myList) print(n) 我需要找到给定列表的最小值。有人能帮我吗?如果您采取“信心的飞

我试图编写一个递归函数来查找列表中的最小值,但我仍然坚持下一步要做什么

def findRecMin(aList):
if(len(aList)==1):
    return aList[0]
else:
    min_of_the_rest = findRecMin(aList[1:])

myList = [16, 20, 3, 37, 95, 49, 61]
n = findRecMin(myList)
print(n)

我需要找到给定列表的最小值。有人能帮我吗?

如果您采取“信心的飞跃”并假设递归调用给出了正确的结果,那么编写这样的递归函数是很简单的。在本例中,您的代码

rest的最小值=findRecMin(列表[1:]) 在列表尾部进行递归调用,该列表是除第一个元素之外的所有元素。所以,让我们假设它确实给了你从尾部的最小元素;您现在需要解决的唯一问题是,如何使用
aList[0]
处的第一个元素和尾部的最小值来找到整个列表的最小值?
答案是,无论是
aList[0]
还是
min\u剩余部分的最小值,都是整个列表的真正最小值。所以我们可以写这样的东西

如果列表[0]
或者更简单地说,使用
min
功能

返回最小值(列表[0],剩余值的最小值)

这种方法适用于在列表上编写多种递归函数;假设递归调用为尾部提供了正确的结果,然后研究如何将第一个元素与该结果结合起来,以获得整个列表的结果。例如:

  • 查找总和:整个列表的总和是
    aList[0]+剩余部分的总和
  • 查找长度:整个列表的长度是剩余部分的
    1+len\u
  • 测试数字
    x
    是否在列表中:
    aList[0]==x或\u rest\u包含\u x

在函数中,您不会从函数中返回最小值。我需要向函数中添加什么使其返回最小值?您需要测试每个元素,并在递归调用函数时跟踪最小元素。然后在具有最小值时返回。