使用折叠的列表中最大的偶数
Largest even number in a list using fold
我想完成这个:
- 构造一个函数,该函数接受一个列表作为参数,returns该列表中最大的偶数。
- 使用 Python
中的 "fold" 函数执行此操作
我认为这可能与以下内容类似:
def fold(f, v, l):
for x in l:
v = f(v, x)
return v
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return fold(l)
我知道这是错误的,但我不知道如何设置。我将如何使用 "fold" 函数完成上述任务?
执行如下操作:
def fold(l):
biggest = float("-inf")
for i in l:
biggest = max(i, biggest)
return biggest
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return fold(l)
fold
函数看起来不错。你只需要用正确的参数调用它:
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return fold(max, float("-inf"), l)
如果不是作业,你可以使用内置的reduce()
,它基本上做同样的事情:
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return reduce(max, l, float("-inf"))
感谢 @Steven Rumbalski,对于任何试图找到序列最大值的人来说,您甚至不需要 reduce
:
def biggest_even_number(xs):
return max(i for i in xs if i % 2 == 0)
我想完成这个:
- 构造一个函数,该函数接受一个列表作为参数,returns该列表中最大的偶数。
- 使用 Python 中的 "fold" 函数执行此操作
我认为这可能与以下内容类似:
def fold(f, v, l):
for x in l:
v = f(v, x)
return v
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return fold(l)
我知道这是错误的,但我不知道如何设置。我将如何使用 "fold" 函数完成上述任务?
执行如下操作:
def fold(l):
biggest = float("-inf")
for i in l:
biggest = max(i, biggest)
return biggest
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return fold(l)
fold
函数看起来不错。你只需要用正确的参数调用它:
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return fold(max, float("-inf"), l)
如果不是作业,你可以使用内置的reduce()
,它基本上做同样的事情:
def biggest_even_number(xs):
l = [i for i in xs if i % 2 == 0]
return reduce(max, l, float("-inf"))
感谢 @Steven Rumbalski,对于任何试图找到序列最大值的人来说,您甚至不需要 reduce
:
def biggest_even_number(xs):
return max(i for i in xs if i % 2 == 0)