鱼C论坛

 找回密码
 立即注册
查看: 1573|回复: 2

[已解决]一个小函数的疑问

[复制链接]
发表于 2017-8-31 13:26:21 | 显示全部楼层 |阅读模式

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

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

x
代码如下:
  1. def odd(x):
  2.     return x % 2
  3. temp = range(10)
  4. show = filter(odd,temp)
  5. print(list(show))
复制代码


返回结果如下:
  1. [1, 3, 5, 7, 9]
复制代码


疑问:
定义的odd函数的返回值应该只有0和1吧,没有理解show = filter(odd,temp)这个代码的真正原理?如何区分需要过滤的数据的?
最佳答案
2017-8-31 13:34:37
1,首先 temp= [0,1,2,3,4,5,6,7,8,9]
2, filter(odd,temp)
      filter(odd,[0,1,2,3,4,5,6,7,8,9])
      依次把 0 , 1, 2, 3, 4, 5, 6 ,7 ,8, 9 传入 odd中。odd返回0,则过滤掉。odd返回1,则保留该数。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-8-31 13:29:58 | 显示全部楼层
我好像理解了,过滤的是非True值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-31 13:34:37 | 显示全部楼层    本楼为最佳答案   
1,首先 temp= [0,1,2,3,4,5,6,7,8,9]
2, filter(odd,temp)
      filter(odd,[0,1,2,3,4,5,6,7,8,9])
      依次把 0 , 1, 2, 3, 4, 5, 6 ,7 ,8, 9 传入 odd中。odd返回0,则过滤掉。odd返回1,则保留该数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-2 01:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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