函数main()接收一个包含若干整数的列表values作为参数,要求返回其中最大的奇数。不能导入任何模块,不能使用内置函数sorted()和列表方法sort(),不能使用循环结构或任何形式的推导式。
def main(values):
不用循环该怎么写
例如,main([3, 7, 0, 2, 8, 9, 3, 20])返回9,main([30, 7, 0, 13, 8, 9, 3, 20])返回13。
def main(values):
if values:
first, *rest = values
max_rest = main(rest)
if first % 2 == 1 and (max_rest is None or first > max_rest):
return first
return max_rest
print(main([3,7,0,2,8,9,3,20]))
可以使用lambda吗?
def main(lst):
return max(filter(lambda x:x%2==1, lst))