在python中迭代lambda函数的列表,给定相同的参数

2024-06-10 15:16:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想建立一个x的lambda函数,使得给定x的列表中所有lambda函数的结果之间取最大值

对于任何大小的列表,您有什么建议吗?在

a = lambda(x): someprocess0(x)
b = lambda(x): someprocess1(x)
c = lambda(x): someprocess2(x)

funcList = [a, b, c]

function = lambda(x): max(funcList[0](x), funcList[1](x), funcList[2](x))

Tags: lambda函数列表function建议maxfunclistsomeprocess0
2条回答

您可以使用generator expressionx应用于每个函数:

function = lambda x: max(f(x) for f in funcList)

这样可以避免将所有函数结果保存在一个列表中,而只需要跟踪到目前为止找到的最高值。在

您可能对Python文档中包含的Python Functional Programming HOWTO感兴趣,该文档讲授生成器表达式和其他函数技术。在

使用以下函数:

def computeResults(functions, value):
    res = []
    for f in functions:
        res.append(f(value))
    return res

function = lambda x: max(computeResults(funcList, x))

相关问题 更多 >