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

Python中常用的高阶函数介绍

发布时间:2023-05-21 15:50:30

高阶函数是指能够接受函数作为参数或返回函数作为结果的函数,是函数式编程中的核心概念之一,可以极大地提高代码的可重用性。

Python中常用的高阶函数有以下几个:

1. map()

map()函数可以将一个函数作用于一个可迭代对象的每个元素上,并返回一个新的可迭代对象,其中每个元素都是原可迭代对象中对应元素应用函数后的结果。示例代码如下:

def square(x):
    return x**2

lst = [1, 2, 3, 4, 5]
squared_lst = map(square, lst)
print(list(squared_lst))  # [1, 4, 9, 16, 25]

2. filter()

filter()函数可以将一个函数作用于一个可迭代对象的每个元素上,返回一个新的可迭代对象,其中只包含原可迭代对象中使函数返回True的元素。示例代码如下:

def is_odd(x):
    return x%2 != 0

lst = [1, 2, 3, 4, 5]
odd_lst = filter(is_odd, lst)
print(list(odd_lst))  # [1, 3, 5]

3. reduce()

reduce()函数可以将一个函数作用于可迭代对象的每个元素,得到一个累积的结果。具体地,函数func接受两个参数: 个参数是累积的结果,第二个参数是可迭代对象中的下一个元素。reduce()函数的返回值是最终的累积结果。示例代码如下:

from functools import reduce

def multiply(x, y):
    return x*y

lst = [1, 2, 3, 4, 5]
product = reduce(multiply, lst)
print(product)  # 120

4. sorted()

sorted()函数可以对一个可迭代对象进行排序,返回一个排好序的新列表。函数可以接受一个key参数,以一个函数作为排序的关键字。示例代码如下:

lst = ['apple', 'orange', 'banana', 'pear']
sorted_lst = sorted(lst)
print(sorted_lst)  # ['apple', 'banana', 'orange', 'pear']

sorted_lst_by_len = sorted(lst, key=lambda x: len(x))
print(sorted_lst_by_len)  # ['pear', 'apple', 'orange', 'banana']

以上是Python中常用的几个高阶函数,它们可以很方便地用于对列表等可迭代对象进行操作,提高代码的可读性和易用性。