首页 新闻 会员 周边 捐助

凡是“表达式”(expression)就可以出现在 lambda 的冒号右侧

0
[已关闭问题] 关闭于 2025-09-02 17:41

能写:

类别例子能否放进 lambda
比较运算符 x == 3x in s
逻辑运算符 x and ynot z
条件表达式(三元) x if x > 0 else 0
短路求值 x or defaultx and func(x)
位运算结果 bool(mask & flag)
函数/方法调用 str.upper(x)
列表/生成器推导式 [i*2 for i in range(3)] ✅(本身是表达式)

 

不能写进 lambda 的:

类别例子原因
赋值语句 x = 1 语句,不是表达式
断言语句 assert x > 0 语句
for / while / if 块 for i in ...: ... 语句
try / except try: ... except: ... 语句
return / yield / pass / break / continue 都是语句

Lambda 只能装“表达式”,装不下“语句”。
能写在 return 后面的东西,就能写在 lambda : 后面

_java_python的主页 _java_python | 小虾三级 | 园豆:984
提问于:2025-09-02 17:05
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册