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

时间:2017-05-20 08:52:16

标签: python recursion

说我有一个函数max_multiples(list,m) 该列表是一个非空列表,如何返回列表中最大数字为m的倍数?

使用递归函数

1 个答案:

答案 0 :(得分:1)

我想这是一种练习,@ 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)