首页 > 技术文章 > map()和filter()和reduce()函数

sniper-huohuohuo 2018-03-29 21:50 原文

一。

map(形参1,形参2)

map()函数返回一个迭代器,它接受两个参数,第一个是函数,第二个是序列。它将序列中的每一个元素传入函数。

并且返回一个新序列。

 

1 a = [1,2,34,5,566,67,7,8]
2 b = [2,3,5,67,8,8,7,9]
3 for x in map(lambda x,y: x+y,a,b):
4     print(x)
5 for x in map(lambda x: x ** 2,a):
6     print(x)

 

二.

filter(形参1,形参2)

filter()函数接受两个参数,第一个为函数,第二个为序列,该函数起着过滤的作用。它将序列的每一个元素传入函数(形参1)中,符合的返回True,不符返回False,最后将所有的True返回一个序列。

1 c = [1,2,3,4,5,6,7,8,9]
2 e = filter(lambda x: x % 2 == 0,c)
3 for x in e:
4     print(x)

三。

reduce(形参1,形参2)

reduce接受两个参数,参数1是函数,参数2是序列;该函数是将序列的前两个元素传入函数(形参1),处理后的结果与第三个元素一起传入函数(形参1),最后返回一个值。

在python2.x中reduce()函数是内置函数,但是在pyhton3中转入了functools中。

 

1 g = [1,2,3,4,5]
2 q = reduce(lambda x,y: x-y,g)
3 print(q)

 

推荐阅读