Python高阶函数:map、filter、reduce、lambda等
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函数,可以大大简化代码的编写和阅读,提高代码效率和可读性。
