Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算并返回列表中的最大值(m)-递归_Python_Recursion - Fatal编程技术网

Python 计算并返回列表中的最大值(m)-递归

Python 计算并返回列表中的最大值(m)-递归,python,recursion,Python,Recursion,假设我有一个函数max_倍数(列表,m) 列表是非空列表,如何返回列表中最大的数字,即m的倍数 使用递归函数我想这是一种练习,@ForceBru的评论为您指明了正确的方向 记录在案,这不是递归的,但这是我在现实生活中的做法 def max_multiples(input_list, m): multiples = [n for n in input_list if not n % m] if multiples: return max(multiples)

假设我有一个函数max_倍数(列表,m) 列表是非空列表,如何返回列表中最大的数字,即m的倍数


使用递归函数

我想这是一种练习,@ForceBru的评论为您指明了正确的方向

记录在案,这不是递归的,但这是我在现实生活中的做法

def max_multiples(input_list, m):
    multiples = [n for n in input_list if not n % m]
    if multiples:
        return max(multiples)
    else:
        return None

max_multiples([5, 9, 16, 8, 6], 3)
# 9

max_multiples([5, 9, 16, 8, 6], 45)
# None
从Python 3.4开始,可以这样编写:

def max_multiples(input_list, m):
    max([n for n in input_list if not n % m], default=None)

到目前为止你尝试了什么?如果你知道如何检查一个数字是否是其他数字的倍数,那么你已经成功了一半。然后,如果你知道如何在一个数字列表中找到最大值,你就有2/3了。最后,一旦你能够递归地完成后一步,你就完成了。看看@Jérôme给我的答案。我做了一些类似的事情,但出现了错误,因为我不能使用loops来显示你所做的事情和错误回溯。你也可以编辑你的帖子,用英语写下你将如何做到这一点,即使你还没有所有的代码。嘿,我实际上尝试了类似的事情,但我不能使用任何循环,或者我出现了错误。这是一件好事,这段代码中没有任何一个有任何错误循环。你的话想表达什么意思?错误的完整回溯是什么?哦,我只是假设它是for循环之类的。这是学校的一个项目,上面写着“隐藏测试失败”,这是一个理解,不是一个循环,但不管怎样,我把这篇文章发给了任何想在现实生活中做这件事的人。这并没有回答你的家庭作业。至于你的问题,至少用你迄今为止所做的来编辑你的问题,人们将能够帮助你。