求助大神
>>> def fun(x):if x % 3 == 0:
return x
else:
return None
>>> list(filter(fun,range(100)))
>>> list(filter(lambda x:x %3==0,range(100)))
求解这是原因,多出了0??? 我猜是因为filter函数是将数列放进fun函数里进行运算后检测结果是True还是false,然后数字0就当成false所以没有输出,但是lambda不会直接把结果交给filter检测所以0可以正确显示吧 leozyre 发表于 2016-5-10 14:54
我猜是因为filter函数是将数列放进fun函数里进行运算后检测结果是True还是false,然后数字0就当成false所以 ...
嗯嗯,谢谢{:9_228:} 我也困惑于这一点,不太明白这两种机制的内部区别,但我想应该是因为当x=0时,fun函数return 0的问题吧。
页:
[1]