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

Python中的高阶函数示例

发布时间:2023-06-10 16:39:31

Python中高阶函数是指可以接受函数作为参数和/或返回函数作为结果的函数。高阶函数的应用广泛,可用于简化代码结构、提高代码的可读性和可维护性等方面。下面将介绍常见的高阶函数及其使用示例。

1. map函数

map函数是一种常见的高阶函数,它可以接受一个函数和一个可迭代对象作为参数,返回一个将函数应用于每个元素的结果列表。下面是一个使用map函数将列表中的元素平方的示例:

lst = [1, 2, 3, 4, 5]
squared = map(lambda x: x ** 2, lst)
print(list(squared))  # [1, 4, 9, 16, 25]

2. filter函数

filter函数是另一种常见的高阶函数,它可以接受一个函数和一个可迭代对象作为参数,返回一个仅包含函数返回值为True的元素的列表。下面是一个使用filter函数将列表中所有大于2的元素过滤出来的示例:

lst = [1, 2, 3, 4, 5]
filtered = filter(lambda x: x > 2, lst)
print(list(filtered))  # [3, 4, 5]

3. reduce函数

reduce函数是Python中的又一种常见的高阶函数,它接受一个函数和一个可迭代对象作为参数,返回一个将函数应用于序列所有元素的结果。下面是一个使用reduce函数将列表中所有元素相乘的示例:

from functools import reduce

lst = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x*y, lst)
print(product)  # 120

4. sorted函数

sorted函数是Python中常用的高阶函数之一,它接受一个可迭代对象作为参数,返回一个经过排序后的新列表,而不改变原列表。下面是一个使用sorted函数将一个列表按照元素长度进行排序的示例:

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

5. zip函数

zip函数是Python中用于将多个可迭代对象打包成元组的高阶函数,它可以接受多个可迭代对象作为参数,返回一个元组列表。下面是一个使用zip函数将两个列表打包成元组的示例:

lst1 = [1, 2, 3, 4, 5]
lst2 = ['one', 'two', 'three', 'four', 'five']
zipped = zip(lst1, lst2)
print(list(zipped))  # [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four'), (5, 'five')]

6. functools.partial函数

functools.partial函数是Python中的另一个高阶函数,它可以接受一个函数和部分参数作为输入,返回一个可调用对象。使用该对象时,传入的参数会被添加到原有参数列表中,并返回其结果。下面是一个使用functools.partial函数将函数的部分参数先预处理的示例:

from functools import partial

def add(x, y):
    return x + y

add2 = partial(add, 2)
print(add2(3))  # 5

除了以上高阶函数外,Python中还有很多其他的高阶函数,如any、all、max、min等。coding中熟练掌握这些函数的使用,有助于提高代码的效率、可读性和可维护性,减少开发时间,避免代码重复等问题。