King丨小义 发表于 2023-3-6 22:25:32

如何在lambda表达式中写赋值语句

lambda x: z = x+1
如上所示,我希望在lambda表达式中写赋值语句
但是python解释器认为我在给lambda赋值,报了如下错误
SyntaxError: cannot assign to lambda

isdkz 发表于 2023-3-6 22:28:05

lambda x: (z := x+1)

歌者文明清理员 发表于 2023-3-6 23:05:21

globals()['z'] = x + 1

chinajz 发表于 2023-3-7 17:31:34

isdkz 发表于 2023-3-6 22:28


正解。加油,离1000分不远了。
lambda x: (z := x+1)#海象运算符:=,与传统赋值运算符“=”不同,海象运算符可以赋值并同时返回变量的值.

狂奔的梦想 发表于 2023-3-7 18:40:49

直接写成 lambda x:x+1即可
想想,在lambda中给Z赋值并不存在任何意义,假设能给Z赋值,出来函数外面以后就被销毁,不存在任何意义,直接返回X+1即可;况且在普通函数中,在return语句中使用赋值语句都会报错,故你这用赋值语句本就不合语法
页: [1]
查看完整版本: 如何在lambda表达式中写赋值语句