欢迎访问宙启技术站
智能推送

Python自带的高级函数:map、reduce、filter

发布时间:2023-06-23 01:23:36

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编程水平。