python进阶(一) | map、filter与reduce

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tylitianrui/article/details/83659408

1.1  map 

map(func,iterable)函数接收两个参数:一个是函数,一个是iterable( 列表,字符串 等 )作用:map将传入的函数依次作用于序列的每个元素,返回一个新的序列 

ret = map(lambda x:x+1,[1,3,4,2])
print ret

就是把可迭代对象的每个元素,一次作为参数传递到函数中。最终将结果以列表的形式输出

1.2   reduce 

这个函数的运行是一个累积的过程。reduce(func,iterable) 就是先在可迭代的对象中取前两个元素,作为参数由func进行计算,得到一个结果;然后再在可迭代对象中取第三个元素  和 刚才的计算结果 共同作为参数传递给func 进行计算,得到一个新结果;在取第四个元素和 这个新结果再进行func运算...直到取完所有元素为止。下例子为累乘。

ret = reduce(lambda x, y: x * y, [1, 2, 3, 4, 5, 6])
print(ret)

结果:720

先1*2 = 2, 再把2*3=6  再 6 * 4 =24 。。。。。。

1.3  filter 

filter(func,iterable)用于过滤,就是把可迭代对象中的每个元素,使用func进行校验,把不满足条件的过滤掉。原则上func只返回True或者flase即可,python中非0 非空 也可表示true也可。下例为过滤掉偶数:

ret = filter(lambda x:x%2,[1,2,3,4,5,6,7])
print(ret)

结果:[1, 3, 5, 7]

过程:1 传入func中,返回1。true,保留。2传入func,返回0, flase,去除。。。。。。

展开阅读全文

没有更多推荐了,返回首页