鱼C论坛

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

请大家解释下作业021中的filter()的某点

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

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

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

x
list(filter(lambda x : x % 3 == 0,range(100))) 和  list(filter(lambda x : x % 3 ,range(100)))  两个的区别打印出来前者是3的倍数,后者不是3的倍数!我有点不懂!谢谢大家
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-17 19:58:01 | 显示全部楼层
filter()这个BIF输出第一个参数返回True的值,说人话就是,lambda x : x % 3,在x是3的倍数的时候返回0,也就是False,就被filter了,不懂欢迎继续追问~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-18 00:06:42 | 显示全部楼层
fliter() 是 把该方法中的第二个参数也就是该例子中的range(100) 这个列表中的每个值应用到第一个参数,并筛选出 表达式为True 的值,x % 3 == 0  只有是 3个倍数才符合,第一个list 为 3的倍数,而x % 3 ,只有不是3的倍数是 ,表达式的值才不为 0,也就是 为True,所以第2个返回的不是3的倍数!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-6 13:31:32 | 显示全部楼层
谢谢解答,懂了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-9 11:37:40 | 显示全部楼层
  1. list(fliter(lambda x: x%3, range(10)))
  2. # 其中的x%3是指不能被3整除的数
  3. #而加一个not则会相反,指的是非x%3的数,也就是能被3整除的数。
  4. not和高中时的非含义是一样的
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-18 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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