减少循环嵌套,提升代码运行速度!你不知道的3个实用Python函数(转)

原文地址(https://zhuanlan.zhihu.com/p/114787201)

作为21世纪最流行的语言之一,Python有很多有趣的功能值得深入探索和研究。今天将讨论其中的三个你可能没听说过的函数,将从理论和实际应用两方面为你详细讲解。

我之所以要讨论这些函数,主要是因为它们可以帮助你避免陷入编写循环中。在某些情况下,循环的运行成本很高,除此之外,这些函数还有助于提高速度。

以下是本文将介绍以下三个函数:

  • map()
  • filter()
  • reduce()

即使你以前听说过这些函数,但是通过我列出的这些理论和例子来强化你的知识储备也没有坏处。

所以,不需要你花费太多的精力来整理,我都给你准备好啦!

一.map()

map()函数的作用是:将另一个函数作为参数,与某种数组放在一起。其思想是将函数(作为参数传入的函数)应用于数组中的每一项。

这有两个原因:

  1. 你不需要写循环
  2. 比循环还快

让我们看看它的实际效果。我将声明一个名为 num_func()的函数,该函数以一个数字作为参数。这个数字是平方的,除以2,然后返回。注意,操作是任意选择的,你可以在函数中执行任何你想要的操作:

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

这个过程成功完成了,这里没有什么突破性的东西,但是尽可能避免循环是件好事。

二.filter()

这是另一个很好的函数,它可以节省你的时间,包括编写和执行。顾名思义,这个想法是只将满足特定条件的项保留在数组中。

与 map()一样,我们可以预先声明函数,然后将其传递到 iterable 列表旁边的 filter()。

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

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

如图所示,只有三个值满足给定条件。

三.reduce()

reduce()与前两个函数有点不同。首先,我们必须从functools模块进行导入。这背后的主要思想是,它将把一个给定的函数应用于项数组,并因此返回一个值。

最后一部分很关键-reduce()不会返回一个项数组,它总是返回一个值。让我们看一个图表,使这个概念具体化。

下面是在图表不完全清楚的情况下写出的逻辑:

  • 5加10等于15
  • 15加上12,结果是27
  • 27加上18,结果是45
  • 45加上25,结果是70

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

现在,我们可以在代码中重新查看图表,并验证所有内容是否正常工作:

当然,这只是展示这些函数工作原理的最简单的例子,肯定还有其他方法可以对列表中的项目进行汇总。

四.最后

希望你能在日常生活中利用这三个功能!速度的提高可能不是很大,这取决于你处理的数据量,但是代码能在更少的循环下看起来会更好。

如果你有其他的例子,不要犹豫!在评论区分享给我们吧!

--END--

翻译:未艾信息()

查看更多最新资讯,欢迎大家点击上方链接登录我们的AI社区。

以及关注我们的公众号:为AI呐喊(weainahan)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值