Python常用高阶函数:lambda、map、filter、reduce与sorted详解

拾柒
拾柒
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍Python中常用的高阶函数,包括lambda匿名函数、map、filter、reduce和sorted。通过具体代码示例,讲解如何接收函数作为参数以提高代码效率,涵盖自定义排序、序列映射、条件过滤及元素累加等实际应用场景。

Python高阶函数概述

前言

高阶函数是指能够接收其他函数或类作为参数,并返回函数或类的函数。Python内置了多种高阶函数,在合适的场景下使用它们可以显著提升代码的执行效率与简洁性。

lambda匿名函数应用

lambda

在某些场景下,我们无需显式定义具名函数,直接传入lambda匿名函数即可满足需求。lambda表达式通常与其他高阶函数配合使用,以简化代码逻辑。

例如,可以通过以下lambda表达式直接计算当x等于3时,函数y = x * 3 + 5的值。


In [1]: (lambda x: x * 3 + 5)(3)
Out[1]: 14

map函数序列映射

map

map函数接收一个函数和一个或多个序列或迭代器作为参数,将该函数应用于序列中的每个元素,并返回一个迭代器对象。


In [4]: a = list(range(5))
In [5]: b = list(range(2, 7))
# 结合lambda匿名函数,对a列表中的每个元素,计算x * 3 + 5的函数值
In [6]: list(map(lambda x: x * 3 + 5, a))
Out[6]: [5, 8, 11, 14, 17]
In [9]: def add(x, y):
  ...:   return x+y
# 传入多个序列,a、b两个序列中的对应元素依次传入函数add中进行计算
# Note: a、b两个序列的长度可以不相等
In [10]: list(map(add, a, b))
Out[10]: [2, 4, 6, 8, 10]

filter函数条件过滤

filter

filter函数(filter(func, seq))利用指定的函数对序列或迭代器中的每个元素进行真假判断,并返回一个经过过滤后的迭代器。


In [18]: a = list(range(5))

In [19]: def isodd(number):
  ...:   if number % 2 == 0:
  ...:     return False
  ...:   return True
  ...:

In [20]: filter(isodd, a)
Out[20]: <filter at 0x1a6dc460748>

# 过滤掉所有偶数
In [21]: list(filter(isodd, a))
Out[21]: [1, 3]

reduce函数累加计算

reduce

reduce函数接收一个函数和一个序列或迭代器,通过滚动计算的方式处理序列中的元素,最终返回单个结果。例如,可用于计算列表中所有元素的总和。


In [23]: from functools import reduce
In [24]: a = list(range(5))
In [25]: sum = reduce((lambda x, y: x + y), a)
In [26]: sum
Out[26]: 10

sorted函数自定义排序

sorted

sorted(iter, key, reverse=False)是一个高级排序函数,支持通过key参数实现自定义排序逻辑。其中,reverse=False表示默认按升序排列结果。


# 比如按照a中每个字符串最后的数字大小,降序排序
In [30]: a
Out[30]: ['fasad_2', 'fadfc_4', '7hdc_0', 'ncsl_1', 'fai_3']

In [32]: sorted(a, key=lambda x: int(x[x.rindex('_') + 1:]), reverse=True)
Out[32]: ['fadfc_4', 'fai_3', 'fasad_2', 'ncsl_1', '7hdc_0']

总结

以上内容介绍了Python中常用的高阶函数实例,希望能对读者有所帮助,同时也感谢大家对本网站的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。