简单易懂之python 中的map,filter,reduce用法

时间:2022-05-24 20:00:28
map(function,sequence) 把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。 重点是结果返回一个列表,这样对返回的列表就可以干很多的活了。如().join()操作 如果function有两个参数,即map(function,sequence1,sequence2)。   例子: 求1+1,2+2,3+3,4+4 map(lambda x:x+x,range(1,5)) 返回值是[2,4,6,8]   reduce(function,sequence) function接收的参数个数只能为2 先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给 function,然后只返回一个结果。 重点就是经过reduce处理完以后,就只会得到一个结果。   例子: 求1到10的累加 reduce(lambda x,y:x+y,range(1,11)) 返回值是55。   filter(function,sequence) function的返回值只能是True或False 把sequence中的值逐个当参数传给function,如果function(x)的返回值是True,就把x加到filter的返回值里面。一般来说filter的返回值是list,特殊情况如sequence是string或tuple,则返回值按照sequence的类型。 重点就是通过filter函数来达到过滤的效果   例子: 找出1到10之间的奇数 filter(lambda x:x%2!=0,range(1,11)) 返回值 [1,3,5,7,9]   还有就是lamdba天生跟它们混的比较熟。通过lamdba来产生一个匿名的函数,对后面的sequence来干活