是否可以在 lambda 函数中为变量赋值?

0 python lambda function

如何在 lambda 表达式中分配变量?

例如,我有这样的 lambda 函数。

o = lambda x,y: x+y
Run Code Online (Sandbox Code Playgroud)

我希望 x+y 等于另一个变量,以便稍后可以在 lambda 表达式中使用它。

o= lambda x,y: avg = x+y #this thorws an error
Run Code Online (Sandbox Code Playgroud)

我尝试阅读 lambda 文档,但没有任何帮助。

如果我可以创建一个变量,以后我将如何使用它?

gil*_*lch 6

是的,使用新的:=“walrus”赋值运算符,您可以在表达式中进行赋值,包括在 lambda 中。请注意,这是一项新功能,需要 Python 3.8 或更高版本。

lambda x, y: (avg:=x+y)
Run Code Online (Sandbox Code Playgroud)

也有一些方法可以在旧版本的 Python 上模拟此运算符,但这:=是现在的正确方法。

  • @Ch3steR `avg` 的作用域位于 lambda 内部,与函数定义中的正常赋值相同。也许您期待的是非本地人?您不能在 lambda 中进行非局部赋值。如果你把 print 放在 lambda 里面,它就会起作用。 (2认同)