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

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

时间:2024-03-22 10:22:05浏览次数:34  
标签:返回 map 函数 Python reduce 代码运行 嵌套 循环 数组

原文地址(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--

翻译:未艾信息(http://www.weainfo.net

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

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

标签:返回,map,函数,Python,reduce,代码运行,嵌套,循环,数组
From: https://www.cnblogs.com/sjip008/p/18088861

相关文章

  • 看完本文若不能让你学通“Python”,我将永远退出IT界
    0基础小白怎么学Python?今天给大家分享一些学习Python的基本概念图,入门书籍、视频教程以及学习路上最有效的方法。Python基本概念最全图1.Python解释器:2.Python数据结构:3.变量与运算符:4.Python流程控制:5.Python文件处理:6.Python输入输出:7.Python异常:8......
  • Python众筹项目结果预测:优化后随机森林分类器可视化
    全文链接:https://tecdat.cn/?p=35412原文出处:拓端数据部落公众号分析师:YiChenXia随着信息技术的飞速发展,众筹作为一个互联网金融的子领域已经成为个人和小企业主筹集资金支持梦想的创新渠道。无论对于众筹发起者还是众筹平台而言,如何利用历史数据去准确预测一个众筹项目的成功......
  • Python - argparse
    需求背景:为python脚本定义参数信息,从命令行获取脚本运行时传入的参数及订单号importargparseimportsysdefparse_arg(cmd_parame): parse=argparse.ArgumentParser(description='thisisademo') parse.add_argument('order',type=str) parse.add_argument('-e'......
  • python 1.卖货
    问题描述:小蓝在蓝桥大街开了一家零售店,他将每天的流水记录在电脑上。在每天开始营业时,商店里没有商品。如果他进了一件商品,那就在电脑上记录1,如果卖出了一件商品,就在电脑上记录-1。对于电脑上的记录,有着这样的要求:1.在一天结束后,要求商品数恰好为02.当卖出商品时,商店里必须......
  • python进行语音分离和说话人识别
    场景:一段音频中有多个说话人,将不同的人说的话分离出来已知一些人的语音特征,跟分离出来的片段,分别求特征的余弦距离,余弦距离最小的作为说话的人安装:pipinstallpyannote.audio# _*_ coding: utf-8 _*_import torchfrom pyannote.audio import Model, Pi......
  • 第十四届蓝桥杯大赛软件赛省赛Python 《三国游戏》
    问题描述问题类型排序,贪心算法。问题分析当第i个事件发生时会分别让X,Y,Z增加Ai,Bi,Ci即当某个事件发生时,三国各增加士兵数Ai,Bi,Ci。如果X,Y,Z的其中一个大于另外两个之和,我们认为其获胜。即当n个事件都确定了是否会发生后,存在X,Y,Z中任一大于另外两个之和,则有其中一个国家获......
  • python scrapy 爬虫爬取quotes.toscrape.com
    1、安装scrapy pip包的管理工具pipinstallscrapy(在cmd中下载)win+r键输入cmd进入命令行2.scrapy介绍它是由五部分组成 引擎 下载器 spider 中间件 管道你只需要知道spider即可因为所有代码都在这里面管道是处理数据的框架定义好接口调用就可以了3.xpa......
  • Python利用Numpy和Pandas实现数据清洗
    利用Numpy和Pandas对数据进行清洗,包括去除重复记录、处理缺失值和异常值,实现代码如下:点击此处下载数据集#coding=utf-8#导入必要的库importpandasaspdimportnumpyasnp#导入数据及输出格式defread_data(filename):data=pd.read_csv(filename)......
  • 《Python从入门到实践》第九章 类
    面向对象编程是最有效的软件编写方法之一在面向对象编程时,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。根据类来创建对象称为实例化,这让你能够使用类的实例创建和使用类创建Dog类classDog:"""一次模拟小狗的简单尝试"""def__init__(self,......
  • python代码小题(4)
    #输出等腰三角形i=1whilei<=5:print(""*(5-i),end="")j=1whilej<=2*i-1:print("*",end="")j+=1print("")i+=1#for循环输出9*9乘法表forjinrange(1,10):......