CharlesDWong 2021-09-19 12:56 采纳率: 100%
浏览 57
已结题

提问:python用filter()取3的倍数,两种方法出现两种结果

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

img

  • 写回答

2条回答 默认 最新

  • 关注

    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条)

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 创建了问题 9月19日

悬赏问题

  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器