鱼C论坛

 找回密码
 立即注册
查看: 3119|回复: 8

lambda 语言不接受不完整的if条件语句么?

[复制链接]
发表于 2017-1-4 13:33:01 | 显示全部楼层 |阅读模式
3鱼币
本帖最后由 Little.L 于 2017-1-4 13:40 编辑

2121212121212121212121212121212.png
这是小甲鱼的作业要求

于是我尝试写这样一个语句
  1. list (map(lambda x:[x,x+1]if x%2 , range(1,10)))
复制代码

恰恰我群多.png
结果报错

其味无穷无.png
但如果补完条件语句,可以正常运行。

所以是不是lambda 语句只接受完整的条件语句呢?

最佳答案

查看完整内容

X if C else Y 这个是python的三元表达式,不是if语句。 lambda的冒号后面是不可以接受语句的,只能接受表达式。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-4 13:33:02 | 显示全部楼层
X if C else Y 这个是python的三元表达式,不是if语句。

lambda的冒号后面是不可以接受语句的,只能接受表达式。

评分

参与人数 2荣誉 +7 鱼币 +7 贡献 +5 收起 理由
H.B.F + 5 + 5 + 3 支持楼主!
Little.L + 2 + 2 + 2

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-4 13:38:09 | 显示全部楼层
else return None
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-4 13:41:50 | 显示全部楼层

其味无穷无.png
return None 就是如果所示结果呢...

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-4 14:33:37 | 显示全部楼层
  1. >>> list (map(lambda x:[x,x+1] , range(1,10,2)))
  2. [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-4 14:33:54 | 显示全部楼层

但是我并不想要None被输出出来
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-4 14:36:56 | 显示全部楼层

加入range 的步长,棒棒哒! 我总是想不起来要用步长

然而 Lambda 后面到底可不可以接受不完整的if 语句呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-10 14:49:44 | 显示全部楼层
你这语句就算不再lambda里也是错的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-10 14:57:10 | 显示全部楼层
余欲渔 发表于 2017-2-10 14:49
你这语句就算不再lambda里也是错的

.....最讨厌这种回答
既然你说我是错的,麻烦请给出原因

既然说不出原因,就不要站在貌似的高处去鄙视众人
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-24 19:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表