这 3个Python 函数你知道吗?

简介: 这 3个Python 函数你知道吗?

动动发财的小手,点个赞吧!

作为21世纪最流行的语言之一,Python当然有很多有趣的功能值得深入探索和研究。今天将介绍其中的三个,每个都从理论上和通过实际示例进行介绍。

我想要介绍这些函数的主要原因是它们可以帮助您避免编写循环。在某些情况下,循环的运行成本可能很高,除此之外,这些函数将有助于提高速度。

以下是本文将涵盖的功能:

  1. map()
  2. filter()
  3. reduce()

即使您以前听说过这些功能,通过更多的理论和示例来加强您的知识也没有什么坏处。

因此,事不宜迟,让我们开始吧!

map

map() 函数接受另一个函数作为参数,以及某种数组。这个想法是将一个函数(作为参数传入的函数)应用于数组中的每个项目。

这派上用场有两个原因:

  1. 你不必写一个循环
  2. 它比循环更快

让我们看看它的实际效果。我将声明一个名为 num_func() 的函数,它将一个数字作为参数。该数字被平方并除以 2 并原样返回。请注意,操作是任意选择的,您可以在函数内做任何您想做的事情:

现在让我们声明一个数字数组,我们要在其上应用 num_func()。请注意 map() 本身将返回一个地图对象,因此您需要将其转换为列表:

似乎该过程已成功完成。这里没有什么开创性的,但尽可能避免循环是一件好事。

filter

这是另一个可以节省您时间的不错的函数——无论是在编写还是在执行上。顾名思义,这个想法是只将满足特定条件的项目保留在数组中。

就像 map() 一样,我们可以预先声明函数,然后将它与可迭代列表一起传递给 filter()。

让我们看看这个在行动中。我已经声明了一个名为 more_than_15() 的函数,顾名思义,如果作为参数给出的项目大于 15,它将返回 True:

接下来,我们声明一个数字数组并将它们作为第二个参数传递给 filter() 函数:

正如预期的那样,只有三个值满足给定条件。再一次,这里没有什么开创性的,但看起来比循环好得多。

reduce

现在 reduce() 与前两个有点不同。首先,我们必须从 functools 模块中导入它。这背后的主要思想是它将给定的函数应用于项目数组并返回单个值作为结果。

最后一部分很关键——reduce() 不会返回一个项目数组,它总是返回一个值。让我们看一张图来具体说明这个概念。

这是在案例图不是 100% 清楚的情况下写出的逻辑:

  1. 5 加到 10,结果是 15
  2. 15 加 12,结果是 27
  3. 27 加 18,结果是 45
  4. 45 加到 25,结果是 70

70 是返回的值。从代码实现开始,让我们从 functools 模块导入 reduce 函数并声明一个返回两个数字之和的函数:

现在我们可以重新访问代码中的图表,并验证一切是否正常工作:

暂时不要进入评论部分——我完全知道还有其他方法可以对列表中的项目求和。这只是展示该功能如何工作的最简单示例。

相关文章
|
3月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
300 1
|
3月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
372 1
|
3月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
254 0
|
4月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
298 101
|
4月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
242 99
|
4月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
214 98
|
4月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
5月前
|
Python
Python 函数定义
Python 函数定义
640 155
|
6月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
638 0
|
4月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
950 0

推荐镜像

更多