当前位置: 首页 > 科技观察

更少的循环?看看这3个Python函数

时间:2023-03-19 16:41:54 科技观察

本文转载自公众号《阅读核心》(ID:AI_Discovery)诞生于1991年的Python,近几年突然火了起来。简历上有Python,就业竞争力瞬间提升,Python内容甚至出现在一些小学课本上。语言比以往任何时候都更热。作为21世纪比较流行的语言之一,Python当然有很多值得深入探索和研究的有趣功能。今天,笔者将从理论和实践两个方面来介绍其中的三个功能。这三个函数并非微不足道,它们帮助程序员避免编写循环,而循环有时运行成本很高。此外,这些功能还有助于提高操作速度。拿出小本本,开始学习吧!map()map()函数的作用是把另一个函数作为参数,和某种数组放在一起,目的是将函数(作为参数导入的函数)应用到每一项的数组中。好处是:不需要写循环比写循环花更少的时间看实际效果。我使用一个名为num_func()的函数,它接受一个数字作为参数。将该数字平方,除以二,然后返回。注意:函数的操作是可选的,用户可以在函数中进行任何需要的操作。现在声明一串数字数组,num_func()将应用于该数组。注意:map()本身会返回一个地图对象,因此需要将其转换为列:大功告成!这不是一项困难的技术,但尽可能避免循环总是好的。reduce()reduce()则不同,它必须从functools模块中引入。该操作基本上将给定函数应用于一组项目并返回一个值。最后一部分很关键——reduce()函数不返回一组项目,它返回一个值。观察下图以可视化此概念。图中看不清楚的地方,给出如下逻辑:1.5加10等于152.15加12等于273.27加18等于454.45加25等于7070是返回值。从实现代码开始,从functools模块导入reduce函数,然后声明一个返回两个数字之和的函数:现在,您可以重新访问代码中的图形并验证一切是否正常工作:当然有多种方式来总结列表中的项目,这里只显示函数如何工作的最简单的例子。filter()函数也很棒,它节省了编写和执行时间。顾名思义,此函数的作用是仅保留数组中满足特定条件的项目。与map()一样,预先声明函数并将其与可迭代列表一起传递给filter()。这是一个示例:如果给定项大于15,则预先声明名为more_than_15()的函数返回True。接下来,声明一个数字数组并将其作为filter()函数中的第二个参数导入:正如预期的那样,仅三个值满足给定的条件。它看起来不比循环好吗?用好这三个函数,你的代码会看起来更好,循环更少。熟能生巧,多练习~