wangxinnan 发表于 2019-5-31 16:47:33

关于函数filter()的一个疑问

求教大神,在自学python中,第六章 函数里,有一个地方
>>> def odd(x):
           return x % 2
>>> temp = filter(odd,range(10))
>>> list(temp)

上边的return x%2,返回的定义是什么?因为按照理解,返回值应该是0或1
但是结合用在filter中,0是作为False的么?
不然按照理解从0到9带入到odd函数中计算,不是应该为么?
求解释,谢谢

wp231957 发表于 2019-5-31 16:51:50

return x % 2和return x % 2==1 是一个意思所以答案是1 3 5 7 9 没毛病

冬雪雪冬 发表于 2019-5-31 16:53:18

0到9带入到odd函数返回0,1,0,1....
是0的舍掉数字,是1的(True),保留。

wangxinnan 发表于 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筛除

wp231957 发表于 2019-5-31 17:16:10

wangxinnan 发表于 2019-5-31 17:13
那可以理解为0是false么
因为filter里是false筛除

基本上所有语言里0和false都是划等号的

冬雪雪冬 发表于 2019-5-31 17:17:13

wangxinnan 发表于 2019-5-31 17:13
那可以理解为0是false么
因为filter里是false筛除

是的

wangxinnan 发表于 2019-6-1 08:14:22

wp231957 发表于 2019-5-31 17:16
基本上所有语言里0和false都是划等号的

感谢解惑

wangxinnan 发表于 2019-6-1 08:15:03

冬雪雪冬 发表于 2019-5-31 17:17
是的

感谢解惑
页: [1]
查看完整版本: 关于函数filter()的一个疑问