gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:44:26 25 4
gpt4 key购买 nike

我有一个功能

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

我想以更好的方式写它。我试过
def max_f2(tup, val):
return (max(funz(val) for funz in tup))

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

这些是正确输出的一些示例
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

最佳答案

您可以使用 max() 执行此操作和 key带有 lambda 函数的参数:

def max_f(tup, val):
return max(tup, key=lambda x: x(val))

输出:
>>> 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

关于python - 以更好的模式重写我的简单 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60305492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com