Python中高阶函数的应用示例
Python中的高阶函数是指接收函数作为参数或将函数作为返回值的函数。高阶函数是一种非常强大的技术,它可以极大地简化程序的编写,提高程序的可读性和可维护性。本文将介绍高阶函数在Python中的应用示例。
1. map函数
map函数是一个非常强大的高阶函数,它可以对可迭代对象中的每个元素都应用一个函数,并返回一个新的可迭代对象。下面是一个示例,将一个列表中的每个元素都乘以2:
result = map(lambda x: x * 2, [1, 2, 3, 4, 5]) print(list(result))
输出结果为:[2, 4, 6, 8, 10]
2. filter函数
filter函数能够对可迭代对象中的元素进行筛选,只保留符合条件的元素。下面是一个示例,将一个列表中的所有偶数筛选出来:
result = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5]) print(list(result))
输出结果为:[2, 4]
3. reduce函数
reduce函数可以对一个可迭代对象中的元素依次进行累积操作。下面是一个示例,计算一个列表中所有元素的和:
from functools import reduce result = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5]) print(result)
输出结果为:15
4. sorted函数
sorted函数是一个非常常用的高阶函数,它用于对一个可迭代对象进行排序。下面是一个示例,对一个列表进行升序排列:
result = sorted([3, 1, 4, 2, 5]) print(result)
输出结果为:[1, 2, 3, 4, 5]
5. any和all函数
any函数可以判断一个可迭代对象中是否存在任何一个元素为真,如果存在则返回True,否则返回False。下面是一个示例,判断一个列表中是否存在任何一个奇数:
result = any(x % 2 != 0 for x in [1, 2, 3, 4, 5]) print(result)
输出结果为:True
all函数则是判断一个可迭代对象中的所有元素是否都为真,如果都为真则返回True,否则返回False。下面是一个示例,判断一个列表中是否所有元素都是偶数:
result = all(x % 2 == 0 for x in [2, 4, 6, 8, 10]) print(result)
输出结果为:True
6. partial函数
partial函数是一个非常实用的高阶函数,它可以把一个函数的某些参数固定住,生成一个新的函数。下面是一个示例,生成一个新的函数,把原函数的 个参数固定为2:
from functools import partial
def add(x, y):
return x + y
new_func = partial(add, 2)
result = new_func(3)
print(result)
输出结果为:5
7. decorator装饰器
decorator是一种常用的高阶函数技术,它可以在不改变原函数代码的情况下,给函数增加新的功能。下面是一个示例,给一个函数增加计时功能:
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print("耗时:{:.3f}s".format((end_time - start_time)))
return result
return wrapper
@timer
def sleep_3s():
time.sleep(3)
return "睡了3秒"
result = sleep_3s()
print(result)
输出结果为:
耗时:3.003s
睡了3秒
本文介绍了Python中高阶函数的一些应用示例,希望能够帮助读者学会如何使用高阶函数来简化代码编写。
