鱼C论坛

 找回密码
 立即注册
查看: 1802|回复: 6

[已解决]求大哥们帮忙解答

[复制链接]
发表于 2020-5-26 15:07:30 | 显示全部楼层 |阅读模式

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

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

x
请问这个return x%2是除掉2所余的数,那这个作为返回值,返回的应该是个1或者0,那为什么在filter里就直接把偶数筛选掉了呢
最佳答案
2020-5-26 15:09:19
0 是 False,非 0 是 True
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-26 15:09:19 | 显示全部楼层    本楼为最佳答案   
0 是 False,非 0 是 True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 15:11:23 | 显示全部楼层
odd是一个函数  他返回的是一个真假值,所以会滤掉一部分数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 15:15:18 | 显示全部楼层
filter(odd,temp):把temp这个列表所有的数字逐一导入函数odd,根据return的值是true还是False来决定是否将数字丢弃。
temp = [0,1,2,3,4,5,6,7,8,9]
导入odd得到 [0,1,0,1,0,1,0,1,0,1]
将返回值为0(False)的丢掉,得到[1,3,5,7,9]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 15:15:31 | 显示全部楼层
因为 odd函数的返回值 要么是 0  要么 是1  在Python 中 0 可以代表False  非零数可以代表True   所以如果返回1话代表 True

所以fiter过滤过程中 如果返回 0  就过滤掉  如果返回 1 就把他留下来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 15:59:45 | 显示全部楼层
因为任何数除以2,余数只可能是0或1,
如果是偶数,则没有余数(0),如果是奇数,则有余数(1)。
根据这个判断,如果为0(偶数),就是False,会被filter删除掉,
但如果是1(技术),就是True,不会被filter删除。
求最佳~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-1 16:35:57 | 显示全部楼层
是这样的,楼主,你先仔细看看你的代码,是不是有:
return x%2    也就是返回除以2以后所余的数,而一个数,只要它去除以2,那么是不是只有3种情况,
当为整除的时候,余下0,或者不能整除余下1,那有没有可能比1还要打呢?不可能,因为它只要大过1,就必定>=2,
那么就必定会被2除掉,所以只能最大余1.所以它导入给odd就会得到 [0,1,0,1,0,1,0,1,0,1],这其中返回0的是不是就是偶数
而返回1的就一定是奇数,返回1话代表 True,返回0的代表False,也就是说True代表的就是奇数,而False代表的就是偶数(0—偶数,被整除—False)
所以在fiter过滤过程中,把那些返回0的就都过滤掉了,也就是把偶数都过滤掉了,也就是你最后所看到的结果, 1留了下来,也就是奇数留了下来,过滤了偶数,
最后的结果自然就是[1,3,5,7,9],因为你输入的temp = [0,1,2,3,4,5,6,7,8,9]中的偶数都被筛出去了,过滤掉了。所以,结果和逻辑一目了然。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 00:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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