说我有一个函数max_multiples(list,m) 该列表是一个非空列表,如何返回列表中最大数字为m的倍数?
使用递归函数
答案 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)