雨谷 发表于 2020-2-23 10:25:03

lamba 和列表推导式的问题

list(filter (lambda x: x if x%3 == 0 else None, range (100)))
运行后得到这样的结果


但是

这样运行后 是这样的结果


两条语句都是筛选3的倍数,为什么上面那一条 的结果没有0
但是下面那一条的结果有0 啊

冬雪雪冬 发表于 2020-2-23 10:26:57

filter过滤掉None和0
列表推导式0也是符合被3整除的

一个账号 发表于 2020-2-23 10:27:08

本帖最后由 一个账号 于 2020-2-23 10:29 编辑

因为 filter 过滤掉了值为 False 的 0,range 默认是从 0 开始的,而 0 % 3 == 0

雨谷 发表于 2020-2-23 19:28:55

一个账号 发表于 2020-2-23 10:27
因为 filter 过滤掉了值为 False 的 0,range 默认是从 0 开始的,而 0 % 3 == 0

哦哦,懂了懂了 ,多谢

雨谷 发表于 2020-2-23 19:30:49

冬雪雪冬 发表于 2020-2-23 10:26
filter过滤掉None和0
列表推导式0也是符合被3整除的

哦哦懂了懂了 ,多谢
页: [1]
查看完整版本: lamba 和列表推导式的问题