关于lambda:x -x if x < 0 else x if x<0 后面不是应该有冒号吗?if x<0 :

Lee_Lee_Z
浏览 2215回答 3
3回答

koc

楼上纯粹是在瞎说…… x if condition else y 是一个 python 的专门的语法,等价于 C 里面的 condition ? x : y,如果你没学过 C 的话,这个语法的含义就是,先判断 condition 的真假,如果为真,整个表达式就返回 x,如果为假就返回 y。和 lambda 表达式没什么关系。

雨中寥落

.........大哥lambda:x -x if x < 0 else x if x<0     lambda x: -x if x < 0 else x if x<0这俩一样吗......

清波

姑且成 lambda表达式 为匿名函数吧, lambda 表达式的主体 也就是冒号后面的语句,并不是标准的Python代码块,而是一个简单地逻辑结构,所以Python 中的一些语法没有应用到这里,这也就是 if 后面没有 冒号的原因。另外,楼主这个lambda表达式,令人费解,还有语法错误。不知何解,望告知。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python