这三个好用的python函数你不能不知道!
作者:程序员石磊 发布时间:2023-04-23 10:29:22
一、前言
我想介绍这些功能的主要原因是它们可以帮助您避免编写循环。在某些情况下,循环运行可能会很昂贵,除此之外,这些功能将有助于提高速度。
以下是本文将涵盖的功能:
map()
filter()
reduce()
即使你之前已经掌握了这些功能,用更多的理论和例子来强化你的知识也没有害处。
所以不用多说,让我们开始吧!
二、map()
map()函数接受另一个函数作为形参,以及某种数组。其思想是将一个函数(作为参数传入的函数)应用到数组中的每一项。
这很有用,有两个原因:
1.你不必写循环
2.它比循环快
让我们看看它的实际应用。我将声明一个名为num_func()的函数,它接受一个数字作为参数。这个数的平方除以2,然后返回。注意,操作是任意选择的,你可以在函数内部做任何你想做的事情:
现在让我们声明一个数字数组,我们想对其应用num_func()。注意map()本身会返回一个map对象,所以你需要将它转换为一个列表:
看起来这个过程很成功。这里没有什么开创性的东西,但是尽可能避免循环是一件好事。
三、filter()
下面是另一个不错的函数,它可以节省您的时间——无论是编写还是执行。顾名思义,这个想法是将只满足特定条件的项保存在数组中。
就像map()一样,我们可以事先声明函数,然后将它与可迭代对象列表一起传递给filter()。
让我们看看它的实际应用。我已经声明了一个名为more_than_15()的函数,顾名思义,如果作为形参的项大于15,该函数将返回True:
接下来,我们声明一个数字数组,并将它们作为第二个参数传递到filter()函数中:
正如你所料,只有三个值满足给定的条件。再一次,这里没有什么开创性的东西,但看起来比循环好多了。
四、reduce()
现在reduce()与前两个稍有不同。首先,我们必须从functools模块中导入它。其主要思想是将给定函数应用于项数组,并返回单个值作为结果。
最后一部分至关重要——reduce()不会返回项的数组,它总是返回单个值。让我们看一个图表来具体说明这个概念。
5加10,结果是1515加12,结果是2727加18,结果是4545加25,结果是70
70是返回的值。首先从代码实现开始,让我们从functools模块导入reduce函数,并声明一个函数返回两个数字的和:
现在,我们可以重新访问代码,并验证一切正常运行:
我希望你能在日常生活中利用这三个功能。速度的提高可能不是很大——这取决于您所处理的数据量——但是代码通常会因为更少的循环而看起来更好!
来源:https://blog.csdn.net/huangmingleiluo/article/details/117802272
猜你喜欢
- 在上章节讲述到图像特征检测与匹配 ,本章节是讲述目标检测与识别。后者是在前者的基础上进一步完善。在本章中,我们使用HOG算法,HOG和SIF
- 最简单的关闭一个窗口的方法是点击标题栏上的 x 标志。但是,在下面的例子中,我们将展示如何通过编程来控制关闭窗口。我们将使用PyQt5的信号
- 配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是s
- 目录:分析和设计组件编码实现和算法用 Ant 构建组件测试 JavaScript 组件话说上期我们讨论了队列管理组件的设计,并且给它取了个响
- 有时候,我们需要替换指定标签外的内容,而保留标签里面的内容不替换。比如当我们要在浏览器中显示出编辑器显示的原始格式时、需要将普通换行符“\n
- 前言大家都知道Web运维总要关注相关域名的实时2xx/s、4xx/s、5xx/s、响应时间、带宽等这些指标,之前的日志是五分钟一分割,简单的
- 在Python探索之SocketServer详解中我们介绍了Python标准库中的SocketServer模块,了解了要实现网络通信服务,就
- python3.7简单的爬虫,具体代码如下所示:#https://www.runoob.com/w3cnote/python-spider-
- Python数据类型分为值类型和引用类型, 下面我们看下它们的区别:值类型:对象本身不允许修改,数值的修改实际上是让变量指向了一个新的对象包
- 本文提供了三种不同的方式在Python(IPython Notebook)中调用ggplot。在大数据时代,数据可视化是一个非常热门的话题。
- 话说网站首页是用.NET语言写的,而二级栏目页却是用ASP写的,然后再配上众多全手工的静态专题页,整个网站形成了一个大杂烩。想要在这大杂烩中
- 例子:(简 > 繁)面包 > 麵包 (zh-tw)寮国 > 老撾 (zh-hk)中国人寿 > 中國人壽 (zh-hk
- 在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词
- 说在最前不知道小伙伴们在写代码的时候有没有区分开numpy.abs和abs函数,别小看这两个函数,如果在写程序的时候正确区分使用这两个函数可
- 几个月前,我开始学习个人形象管理,从发型、妆容、服饰到仪表仪态,都开始做全新改造,在塑造个人风格时,最基础的是先了解自己属于哪种风格,然后找
- 1.彻底弄懂CSS盒子模式一(DIV布局快速入门)3.彻底弄懂CSS盒子模式三(浮动的表演和清除的自述) 4.彻底弄懂CSS盒子模式四(绝对
- 使用Python的内置方法dir,可以范围一个模块中定义的名字的列表。官方解释是:Docstring:dir([object]) ->
- JS获取多选框checkbox被选中的个数。var checkbox = document.getElementsByName("
- 这篇文章主要从基本情况、成本、优缺点和应用场合等方面对5种MySQL的可靠性方案进行了详细的分析和比较,另外,本文对MySQL数据库的开发和
- 本文实例讲述了python实现复制整个目录的方法。分享给大家供大家参考。具体分析如下:python有一个非常好用的目录操作类库shutil,