小编Alb*_*rto的帖子

以更好的模式重写我的简单 Python 代码

我有一个功能

def max_f(tup, val):
    max = tup[0](val)
    out = tup[0]
    for funz in tup:
        new = funz(val)
        if new > max: 
            max = new
            out = funz
    return out
Run Code Online (Sandbox Code Playgroud)

我想以更好的方式写它。我试过

def max_f2(tup, val):
    return (max(funz(val) for funz in tup))
Run Code Online (Sandbox Code Playgroud)

但我应该返回一个函数,而不是一个值。我怎么能?

这些是正确输出的一些示例

tupleFunz=(lambda x: x + 3 ,lambda x: x * 2,lambda x: x % 2)
max_f(tupleFunz,4)(8) #=> 16
max_f(tupleFunz,1)(8) #=> 11 
Run Code Online (Sandbox Code Playgroud)

python lambda for-loop tuples function

4
推荐指数
1
解决办法
175
查看次数

标签 统计

for-loop ×1

function ×1

lambda ×1

python ×1

tuples ×1