python中reduce/map/filter和lambda结合起来的一些用法示例
- filter:两个参数,第一个参数是判断真假的函数,第二个参数是待处理的序列。filter函数会把后面的序列遍历,使用前一个参数判断是否符合条件,符合即填入最后返回的序列当中
list(filter(lambda x: x >= 10, range(20)))
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
- map:map函数会把待处理的序列,用所传进来的函数处理
list(map(lambda x: x - 10, range(10)))
[-10, -9, -8, -7, -6, -5, -4, -3, -2, -1]
- reduce:reduce会把待处理的数据进行累计,比方说待处理的数据是一个列表,reduce会先去列表的前两个元素,用传进来的函数计算,再把计算结果和列表的第三个元素,再用传进来的函数计算。。
from _functools import reduce
reduce(lambda x, y: x * y, [1, 2, 3])
6