Python高阶函数详解:内置map、reduce、filter函数示例
191 浏览量
更新于2024-08-31
收藏 186KB PDF 举报
"这篇资源主要介绍了Python中的高阶函数,包括它们的定义、特性以及一些内置的高阶函数,如map、reduce和filter。"
在Python编程语言中,高阶函数是一类特殊的函数,它们可以接受另一个函数作为参数,或者返回一个新的函数。这种功能使得高阶函数在处理复杂逻辑和元编程时非常有用。高阶函数的概念基于函数也是一种数据类型,因此可以被赋值给变量,作为参数传递,甚至作为其他函数的返回值。
一个简单的例子是`abs`函数,它用于计算整数的绝对值。可以将`abs`赋值给变量`f`,然后通过`f(-10)`调用这个函数。此外,`fun`是一个高阶函数,它接受两个数值`x`和`y`以及一个函数`f`作为参数,然后分别应用`f`到`x`和`y`上并返回结果。
Python内置了一些高阶函数,其中:
1. **map**:`map()`函数接受一个函数和一个序列(如列表)作为参数,将函数依次应用于序列的每个元素,然后返回一个新的迭代器,包含所有应用函数后的结果。例如,可以使用`map()`来计算一系列数字的阶乘。
```python
# 示例:求2-7以内10个随机数的阶乘列表
import random
def factorial(x):
res = 1
for i in range(1, x + 1):
res *= i
return res
li = [random.randint(2, 7) for _ in range(10)]
print(list(map(factorial, li)))
```
2. **reduce**:`reduce()`函数对序列进行累积操作,将一个函数连续地应用到序列的元素上,通常用于实现某种累积计算,如累加或累乘。在Python 3中,`reduce()`已经不在内置函数列表中,需要从`functools`模块导入。
```python
from functools import reduce
def multiply(x, y):
return x * y
print(reduce(multiply, range(1, 4))) # 累乘
def add(x, y):
return x + y
print(reduce(add, [1, 2, 3, 4, 5])) # 累加
```
3. **filter**:`filter()`函数与`map()`相似,也接受一个函数和一个序列。但它不是返回所有元素的结果,而是根据提供的函数返回的布尔值来过滤序列,只保留使函数返回`True`的元素。例如,可以使用`filter()`找出1到100之间的所有奇数。
```python
def is_odd(num):
return num % 2 != 0
print(list(filter(is_odd, range(1, 101)))) # 打印1到100的奇数
```
除了上述的高阶函数,Python还有其他一些高阶函数,如`sorted()`、`lambda`表达式和`匿名函数`等,它们在处理数据和控制流程方面都非常强大。学习和熟练运用这些高阶函数,可以显著提高代码的简洁性和可读性,同时也能更好地利用Python的函数式编程特性。
2020-12-25 上传
2021-01-20 上传
2020-12-21 上传
2021-01-20 上传
2024-04-20 上传
2021-10-01 上传
2020-12-22 上传
No.1????
- 粉丝: 3
- 资源: 904
最新资源
- 俄罗斯RTSD数据集实现交通标志实时检测
- 易语言开发的文件批量改名工具使用Ex_Dui美化界面
- 爱心援助动态网页教程:前端开发实战指南
- 复旦微电子数字电路课件4章同步时序电路详解
- Dylan Manley的编程投资组合登录页面设计介绍
- Python实现H3K4me3与H3K27ac表观遗传标记域长度分析
- 易语言开源播放器项目:简易界面与强大的音频支持
- 介绍rxtx2.2全系统环境下的Java版本使用
- ZStack-CC2530 半开源协议栈使用与安装指南
- 易语言实现的八斗平台与淘宝评论采集软件开发
- Christiano响应式网站项目设计与技术特点
- QT图形框架中QGraphicRectItem的插入与缩放技术
- 组合逻辑电路深入解析与习题教程
- Vue+ECharts实现中国地图3D展示与交互功能
- MiSTer_MAME_SCRIPTS:自动下载MAME与HBMAME脚本指南
- 前端技术精髓:构建响应式盆栽展示网站