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中常用的几个高阶函数,它们可以很方便地用于对列表等可迭代对象进行操作,提高代码的可读性和易用性。
