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

提问:python用filter()取3的倍数,两种方法出现两种结果
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-Plio大咸鱼 2021-09-19 13:18关注
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))))
有帮助望采纳~~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用