Lambda表达式:返回多个值

Sig*_*535 2 python lambda

我想通过lambda表达式实现该函数,如下所示:

而不是这个:

def f(x, y, z):
     return x + 1, y * 2, z * 3
Run Code Online (Sandbox Code Playgroud)

我想使用lambda表达式,如下所示:

f = lambda x, y, z: x + 1, y * 2, z * 3
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

*Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'y' is not defined*
Run Code Online (Sandbox Code Playgroud)

为什么会导致错误?如何才能做到这一点?

agh*_*ast 6

你的元组没有正确绑定 - lambda以第一个逗号结束.把元组放在元组周围:

f=lambda x,y,z: (x+1,y*2,z*3)
Run Code Online (Sandbox Code Playgroud)