|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- f = list(filter(lambda z : z * 2,range(10)))
- print(f)
复制代码
[1, 2, 3, 4, 5, 6, 7, 8, 9]
求指教:0去哪里了?还有就是filter这个是怎么执行的?
本帖最后由 jackz007 于 2019-11-23 02:15 编辑
- f = list(filter(lambda z : z * 2,range(10)))
复制代码
lambda 作为 filter 函数,其过滤条件是 z * 2,那么,只要能使表达式 z * 2 不为零的 z 值都将得到保留,而使表达式的值为 0 的 z 值都将被过滤掉。在 range(10) 中,只有 0 能使 z * 2 的值为 0,所以,在最后的列表中,只缺少 0。
- def c(z):
- return z % 2 == 1
复制代码
显然,函数 c(z) 判断 z 是否是奇数,当 z 是奇数的时候,返回 True,否则返回 False
c() 是 filter() 函数的过滤函数,这就意味着,所有的偶数都将被过滤掉,最后留下的只有奇数。所以,最后 list(d) 的结果就是 range(10) 中所有的奇数 [1 , 3 , 5 , 7 , 9]
|
|