鱼C论坛

 找回密码
 立即注册
查看: 2363|回复: 7

[已解决]关于函数filter()的一个疑问

[复制链接]
发表于 2019-5-31 16:47:33 | 显示全部楼层 |阅读模式

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

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

x
求教大神,在自学python中,第六章 函数里,有一个地方
>>> def odd(x):
           return x % 2
>>> temp = filter(odd,range(10))
>>> list(temp)
[1, 3, 5, 7, 9]
上边的return x%2,返回的定义是什么?因为按照理解,返回值应该是0或1
但是结合用在filter中,0是作为False的么?
不然按照理解从0到9带入到odd函数中计算,不是应该为[0,1,2,3,4,5,6,7,8,9]么?
求解释,谢谢
最佳答案
2019-5-31 16:53:18
0到9带入到odd函数返回0,1,0,1....
是0的舍掉数字,是1的(True),保留。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-31 16:51:50 | 显示全部楼层
return x % 2  和  return x % 2==1 是一个意思  所以答案是1 3 5 7 9 没毛病
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-31 16:53:18 | 显示全部楼层    本楼为最佳答案   
0到9带入到odd函数返回0,1,0,1....
是0的舍掉数字,是1的(True),保留。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-31 17:13:16 | 显示全部楼层
冬雪雪冬 发表于 2019-5-31 16:53
0到9带入到odd函数返回0,1,0,1....
是0的舍掉数字,是1的(True),保留。

那可以理解为0是false么
因为filter里是false筛除
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-31 17:16:10 From FishC Mobile | 显示全部楼层
wangxinnan 发表于 2019-5-31 17:13
那可以理解为0是false么
因为filter里是false筛除

基本上所有语言里0和false都是划等号的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-31 17:17:13 | 显示全部楼层
wangxinnan 发表于 2019-5-31 17:13
那可以理解为0是false么
因为filter里是false筛除

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-1 08:14:22 | 显示全部楼层
wp231957 发表于 2019-5-31 17:16
基本上所有语言里0和false都是划等号的

感谢解惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-1 08:15:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 06:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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