Python内置高阶函数filter、map与reduce详解及用法示例

江屿
江屿
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍Python中filter、map和reduce三个常用内置函数的用法。通过具体代码示例,演示如何利用filter筛选元素、map转换数据以及reduce进行累积计算,并解析lambda匿名函数的语法及其与高阶函数的结合应用,帮助开发者掌握Python数据处理的高效技巧。

本文介绍Python中几种常见且高效的内置函数及其使用方法,供读者参考学习。

1. filter(function, sequence)

该函数用于对序列sequence中的每个元素依次执行function函数(可自定义,返回值需为布尔值True或False),筛选出符合条件的元素,并将结果重组为与原序列类型一致的String、List或Tuple等对象。

示例

def func(x):
  return x%2==0 and x%3==0
filter(func,(3,6,8,12,15,21))
#(6, 12)

2. map(function, sequence)

该函数将序列sequence中的每个元素依次传入function函数(可自定义,返回值通常为数值)进行计算。无论输入序列sequence的类型如何,map函数最终都会返回一个List列表。

示例

def func(x):
  return x*2
map(func,(3,6,8,12,15,21))
#[6, 12, 16, 24, 30, 42]

当map函数接收多个sequence输入时,对应的function函数也必须具备相同数量的参数。

def func(x,y):
  return x+y
seq1=[3,6,4,8]
seq2=[6,4,3,7]
map(func,seq1,seq2)
#[9, 10, 7, 15]

注意:上述示例基于Python 2.7环境编写,在Python 3环境中需采用如下用法。

>>> map_obj = map(lambda x:x+1,[1,2,3,4])
>>> map_obj
<map object at 0x0000014C511BD898>
>>> list(map_obj)
[2, 3, 4, 5]

3. reduce(function, sequence, starting_value)

该函数对序列sequence中的元素按顺序迭代调用function函数,常用于对List列表进行累加求和等操作:

def add(x,y):
  return x+y
reduce(add,[3,6,4,8])
#21
#相当于运行‘3+6+4+8'=21

若提供starting_value参数,该值将作为初始值参与调用。

def subtract(x,y):
  return x-y
reduce(subtract,[3,6,4],20)
#7
#相当于'20-3-6-4'=7

4. lambda匿名函数

语法格式为lambda 参数1,参数2(,参数n..):表达式,该表达式返回一个函数对象。

示例

func=lambda x,y:x+y
func(3,5)
#8

将lambda函数与reduce函数结合使用的示例

reduce(lambda x,y:x+y,[3,6,4,8])
#21

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述内容对大家学习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 算法库。