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

Python中高阶函数的应用示例

发布时间:2023-06-04 12:17:38

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中高阶函数的一些应用示例,希望能够帮助读者学会如何使用高阶函数来简化代码编写。