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

Python高阶函数:map、filter、reduce、lambda等

发布时间:2023-05-27 17:29:43

Python高阶函数是指在Python语言中能够接受函数作为参数或返回函数的函数。常见的Python高阶函数有map、filter、reduce和lambda。下面将分别进行介绍。

1. map函数

map函数是将一个函数映射到一个可迭代对象的每个元素上,并返回一个新的可迭代对象。map函数的实现方式是通过将对应的元素作为参数传递给函数,然后收集函数返回的结果,最后返回所有结果的列表。例如:

def square(n):
    return n * n

lst = [1, 2, 3, 4, 5]

result = map(square, lst)

print(list(result))

这里的square函数将传入的参数返回的平方值作为结果,因此执行结果如下:

[1, 4, 9, 16, 25]

2. filter函数

filter函数是通过对一个可迭代对象中的元素应用一个布尔函数,返回一个只包含符合条件元素的新的可迭代对象。filter函数的实现方式是通过对每个元素应用布尔函数,如果返回True则将该元素添加到结果列表中。例如:

def is_even(n):
    return n % 2 == 0

lst = [1, 2, 3, 4, 5]

result = filter(is_even, lst)

print(list(result))

这里的is_even函数将传入的参数是否是偶数作为结果,因此执行结果如下:

[2, 4]

3. reduce函数

reduce函数是将一个函数应用到一个可迭代对象中的所有元素,然后返回一个单值。reduce函数的实现方式是通过分别将前两个元素传递给函数,然后将结果与下一个元素继续传递给函数,以此类推,最后返回一个单值。例如:

from functools import reduce

def add(x, y):
    return x + y

lst = [1, 2, 3, 4, 5]

result = reduce(add, lst)

print(result)

这里的add函数将传入的两个参数相加作为结果,因此执行结果如下:

15

4. lambda函数

lambda函数是一种匿名函数,可以在任何需要函数的地方使用。lambda函数的实现方式是通过将参数列表和表达式分别放在lambda关键字后面和冒号前面,返回一个可调用的lambda函数。例如:

lst = [1, 2, 3, 4, 5]

result = map(lambda x: x * x, lst)

print(list(result))

这里的lambda函数将传入的参数返回的平方值作为结果,因此执行结果与之前的map函数相同:

[1, 4, 9, 16, 25]

综上所述,Python高阶函数包括map、filter、reduce和lambda函数,可以大大简化代码的编写和阅读,提高代码效率和可读性。