Python自带的高级函数:map、reduce、filter
Python自带的高级函数:map、reduce、filter
Python语言中内置了很多高级函数,map、reduce、filter就是其中比较常用的三个。这三个函数可以让Python程序变得更为简洁、高效,提高编程效率。
1、map函数
map函数是Python内置的一个高阶函数,通过对序列中的每个元素应用函数的方法,来实现对整个序列的处理。map函数的用法如下:
map(function, iterable)
其中,function是指一个函数,iterable是指迭代器。map函数的作用就是将其第二个参数通过 个参数的函数映射进行操作。
例如,我们有一个列表a=[1,2,3,4,5],要对其中每个元素进行平方运算,我们就可以使用map函数实现:
a=[1,2,3,4,5]
b=list(map(lambda x:x**2,a))
print(b)
输出结果为:
[1, 4, 9, 16, 25]
我们同样可以使用map函数来实现两个列表的元素一一对应进行操作。例如,我们有两个列表a=[1,2,3,4,5],b=[2,4,6,8,10],我们想要将这两个列表对应元素都相乘,我们可以使用如下代码:
a=[1,2,3,4,5]
b=[2,4,6,8,10]
c=list(map(lambda x,y:x*y,a,b))
print(c)
输出结果为:
[2, 8, 18, 32, 50]
2、reduce函数
reduce函数是Python内置的另一个高阶函数,与map函数不同,reduce函数会对序列中的元素进行前后累积操作,最终得到一个合成值。reduce函数的用法如下:
reduce(function, iterable[, initializer])
其中,function是指一个函数,iterable是指迭代器,initializer是指初始化值(可选)。reduce函数的作用就是对iterable中的元素依次进行某些操作,并将前一次的计算结果作为下一次计算的初始值。
例如,我们有一个列表a=[1,2,3,4,5],我们想要对其中的元素进行前后相加的操作,可以使用reduce函数实现,代码如下:
from functools import reduce
a=[1,2,3,4,5]
b=reduce(lambda x,y:x+y,a)
print(b)
输出结果为:
15
3、filter函数
filter函数是Python内置的另一个高阶函数,它可以根据指定的函数过滤掉序列中不需要的元素,返回一个仅包含符合条件的元素序列。filter函数的用法如下:
filter(function, iterable)
其中,function是指一个函数,iterable是指迭代器。filter函数的作用就是对iterable中的元素逐个进行判断,如果符合条件则保留,否则返回False。
例如,我们有一个列表a=[1,2,3,4,5],我们想要筛选出其中所有的偶数,可以使用filter函数实现,代码如下:
a=[1,2,3,4,5]
b=list(filter(lambda x:x%2==0,a))
print(b)
输出结果为:
[2, 4]
总结
map、reduce、filter三个函数都是Python内置的高级函数,可以在一些特定场合下,极大地减少开发者的编写代码的时间和工作量,提高程序的运行效率。在实际编程中,我们可以根据实际需要学习和掌握这三个高级函数的用法,应用到自己的代码中,从而提高自己的Python编程水平。
