马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
list(filter((lambda x:x%3==0),range(100)))
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
list(filter((lambda x:not(x%3)),range(100)))
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
求助 list(filter((lambda x:x%3==0),range(100)))我这一个语句怎么来理解呀
本帖最后由 zltzlt 于 2020-2-25 12:02 编辑
可以将它转化为列表推导式:
- >>> [x for x in range(100) if x % 3 == 0]
- [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
复制代码
filter() 的函数就是过滤掉假的值。例如:
- >>> list(filter(lambda x: x % 5 == 0, range(100))) # 过滤 100 以内除以 5 余数不为 0 的数
- [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
复制代码
lambda 不仅可以用在 filter 上,它还能作为一个函数:
- >>> f = lambda x: x * 2 # 冒号前面的是参数,冒号后面的是返回值
- >>> f(3) # 3 * 2
- 6
- >>> f(6) # 6 * 2
- 12
复制代码
|