python运算符、内置函数问题

问题遇到的现象和发生背景

函数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))