鱼C论坛

 找回密码
 立即注册
查看: 1353|回复: 4

[已解决]lambda

[复制链接]
发表于 2018-3-29 21:21:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

lamda的用法

lamda的用法

lambda不是可以写作 lambda x : x if x % 2 else None,这里写成lambda x : x not(x%3) 为什么有错呀?都是一个判断条件前面一个返回值,感觉形式上是一个样子。
最佳答案
2018-3-29 21:36:09
本帖最后由 ba21 于 2018-3-29 21:39 编辑

lambda 参数:返回值


x if x % 2 else None 。有返回值。


x not (x%3)。  算什么咯?
>>> not(x%5)
True
>>> x True ?????????
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-29 21:36:09 | 显示全部楼层    本楼为最佳答案   
本帖最后由 ba21 于 2018-3-29 21:39 编辑

lambda 参数:返回值


x if x % 2 else None 。有返回值。


x not (x%3)。  算什么咯?
>>> not(x%5)
True
>>> x True ?????????
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-29 22:15:38 | 显示全部楼层

                               
登录/注册后可看大图
谢谢你提醒了我,如果后面跟条件语句的话就需要加上返回值x,如果不是条件语句,为真返回,就不需要加返回值了。以下,加条件语句就对了!
>>> list(filter(lambda x : x if not(x % 3) else None,range(100)))
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-29 22:24:17 | 显示全部楼层
本帖最后由 tifa2018 于 2018-3-29 22:25 编辑

其实lambda是不能用于复杂逻辑的,

lambda语法格式:
lambda 变量 : 要执行的语句(可以用条件表达式)

例子
lambda x:x+1
这里的x相当于自定义函数的形参,x+1相当于return的返回值
  1. def calc(x)
  2.      return x+1
复制代码

这个自定义函数和lambda x:x+1是等价的

其实楼主的例子有点特殊
lambda x:not (x % 3)

x % 3 有2种情况一是0 ,二部是0,

如果是0 not false = true 所以结果最终返回了从0开始的3的倍数

严格来讲x % 3并不算一种条件表达式


这里简要说下filter()
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

例子
  1. li = [1, 4, 6, 7, 9, 12, 17]
  2. res = list(filter(lambda n:n %2 ==1,li))
  3. print(res)
复制代码


输出结果

  1. [1, 7, 9, 17]
复制代码


这里的lambda函数是一个函数处理逻辑,最终是返回了符合 n %2 ==1条件的n
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 10:18:09 | 显示全部楼层
tifa2018 发表于 2018-3-29 22:24
其实lambda是不能用于复杂逻辑的,

lambda语法格式:

谢谢你,写的这么详细,我对lambda了解又更多一些,很感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-9 23:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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