如图两个函数,理论上逻辑是一样的,为何运行结果一个包含0,一个不包含0。
有热心人可以解惑吗?谢谢!

如图两个函数,理论上逻辑是一样的,为何运行结果一个包含0,一个不包含0。
有热心人可以解惑吗?谢谢!

filter函数是根据前面判断函数的真假来进行的,因为0传入时lambda函数返回的是0,所以认为为假,故结果中不包含零
将式1中lambda函数修改如下即可正确判断
print(list(filter(lambda x:1 if( (x % 3) == 0) else 0, range(101))))
print(list(filter(lambda x: not (x % 3), range(101))))
有帮助望采纳~~