全文共 1146 字,预计学习时长 5 分钟
图源:wired
诞生于1991年的Python,这几年突然火了。简历上有了Python,就业竞争力瞬间提升,甚至一些小学教材上都出现了Python内容。这种语言的热度超过了以往任何时候。
作为21世纪最流行的语言之一,Python当然有很多有趣的函数值得深入探索和研究。笔者今天就将从理论和实际两个方面,介绍其中三个函数。
这三个函数可不简单,它们可以帮助 程序员 们避免编写循环,有时循环的运行成本是很高的。此外,这些函数还有助于提高运行速度。
拿出笔小本本开始学习吧!
map()
map() 函数的作用是将另一函数作为参数,与某种数组放在一起,旨在将函数(作为参数而导入的函数)应用于数组中的每一个项。其好处在于:
· 无需编写循环
· 2.比编写循环用时短
图源:unsplash
来看看实际效果。笔者采用名为num_func()的函数,该函数以一个数字作为参数。将该数字平方并除以二,然后返回。
注:函数的操作是任意选择的,用户可以在函数中执行任何想进行的操作。
现在声明一串要应用num_func()的数字数组。注:map() 本身将会返回一个map对象,因此需要将其转为为一个列:
大功告成!虽然不是多难的技术,但是尽可能避免循环总是好事。
reduce()
reduce()则不同,必须从functools模块将其导入。该操作主要是将一个给定的函数应用于项目组,然后返回一个值。
最后一部分很关键——reduce()函数不会返回一个项目组,而是返回一个值。观察以下图表,以对此概念具体化。
在图表不完全清楚的情况下,呈现出以下逻辑:
1.5加10等于15
2.15加12等于27
3.27加18等于45
4.45加25等于70
70是返回的值。从实现代码开始,先从functools模块导入reduce函数,再声明一个返回两个数字之和的函数:
现在,可以在代码中重新查看图表,并验证所有内容是否正常工作:
当然还有许多办法可以对列表中的项目进行汇总,这里只展示了函数工作原理中最简单的一些例子。
图源:business.blogthinkbig.com
filter()
这个函数也非常棒,它可以节省时间——包括编写和执行。顾名思义,这个函数的作用是只将满足特定条件的项保留在数组中。
与map()一样,预先声明函数,然后将其和迭代列表一起传递到 filter()。
来一个示例:现已提前声明了一个名为 more_than_15()的函数,即如果参数给定的项大于15,则返回True。
接下来,声明一个数字数组,并将其作为filter()函数中的第二个参数导入:
正如所料,只有三个值满足给定条件。是不是看起来比循环好多了?
图源:unsplash
用好这三个函数,你的代码看起来会更好,循环数也会更少。熟能生巧,要多练习呀~
推荐阅读专题
留言点赞发个朋友圈
我们一起分享AI学习与发展的干货
编译组:王俊博、柳玥
相关链接:
https://towardsdatascience.com/top-3-python-functions-you-dont-know-about-probably-978f4be1e6d
如转载,请后台留言,遵守转载规范
推荐文章阅读
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- golang跳出for循环——匿名函数
- Go语言入门教程系列——函数、循环与分支
- 【译】理解Javascript函数执行—调用栈、事件循环、任务等
- Go语言学习笔记03--流程控制循环语句与函数
- Go 语言函数式编程系列教程(十六) —— 流程控制篇:循环语句
- Java 8 习惯用语,第 3 部分: 传统 for 循环的函数式替代方案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
微信公众号深度解析
魏艳 / 化学工业出版社 / 2017-5 / 49.80元
本书是一本微信公众号营销的教科书,全方位揭秘了微信订阅号、微信服务号、微信企业号三大类型账号的运营管理策略和技巧,有助于企业构建一套全新的微信公众号营销体系,打造一个移动端的商业帝国,是企业和微商必读的微信公众号营销和运营宝典。 《微信公众号深度解析:订阅号+服务号+企业号三号运营全攻略》突出了“新”、“全”、“实战”三大特点,阐述了微信公众号在新形势下的现状、发展趋势和三大类型;微信公众号......一起来看看 《微信公众号深度解析》 这本书的介绍吧!