原标题:更少循环?看看这3个Python函数

全文共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学习与发展的干货

如需转载,请后台留言,遵守转载规范返回搜狐,查看更多

责任编辑:

reduce python3_更少循环?看看这3个Python函数相关推荐

  1. 节俭式创新:用更少资源,做更多的事

    \u0026#xD; 本文要点: \u0026#xD;\u0026#xD; 在发展中国家,大小型企业都将金字塔底层人民的需求视为市场机会,并开始着手设计节俭的.以市场为主导的解决方案,以满足之前未能满 ...

  2. Google用更少标签生成图像,还提出一个用于训练评估GAN的库

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 译者 | 刘畅 责编 | 琥珀 出品 | AI科技大本营(ID:rgznai100) 生成对抗网络(GAN)是属于一种强有力的深度生成模型.G ...

  3. 混合深度卷积,更少参数下的轻量级网络

    作者:Tom Hardy Date:2020-01-08 来源:混合深度卷积,更少参数下的轻量级网络

  4. 虚拟化通过更少的硬件以实现更多性能的提升

    难怪现在中小企业对虚拟化技术的无限潜力感到兴奋不已.虚拟化可以提供服务器效率将近四倍,存储硬件能力提供近1/3.通过那些能够对硬件进行分区创建多个虚拟操作环境的软件,虚拟化让中小企业用户使用更少的硬件 ...

  5. 如何消耗更少资源?Unity优化技巧(上)

    什么是优化? 为了达成相同目标,寻求并采用消耗更少资源的办法的过程 对游戏来说通过特别的技巧,在实现相同的表现效果.流畅度的前提下对硬件机能的需求更低.更平民化.或者在相同性能的平台上,实现更好的画面 ...

  6. ASP.NET Core 3.0:将会拥有更少的依赖

    在ASP.NET Core项目中,我们使用一个叫做Microsoft.AspNetCore.App的综合包.它也被称为ASP.NET Core Shared Framework,在ASP.NET Co ...

  7. 单元测试junit参数_使用Junit参数在更少的时间内编写更好的单元测试

    单元测试junit参数 大多数人都知道单元测试的重要性和好处,以及为什么要在进行的项目中使用它们. 而且,大多数人不喜欢在他们从事的项目中编写单元测试. TDD的人当然处于另一面,但根据我的经验,他们 ...

  8. lombok 简化代码_如何编写更少,更好的代码,或Project Lombok

    lombok 简化代码 我长期以来一直打算写有关Lombok的文章 ,以至于每当一个自重的Java开发人员都已经听说过它时,我可能会写它. 尽管如此,值得一提的是,如果只是提醒自己,不要犹豫,尝试性能 ...

  9. 如何编写更少,更好的代码,或Project Lombok

    我长期以来一直打算撰写有关Lombok项目的文章 ,以至于每当一个自重的Java开发人员都已经听说过它时,我可能会写它. 尽管如此,值得一提的是,如果只是提醒自己,不要犹豫,尝试性能增强工具并查看它们 ...

最新文章

  1. LCA 求 树中两个点的距离
  2. Let Me Count The Ways(Kickstart Round H 2018)
  3. 关于ERP、MES、SFC问题
  4. MongoDB学习笔记(2)
  5. 面试中的 10 大排序算法总结
  6. 停电导致IIS问题,解决inetinfo的CPU占用很大
  7. Hexo中Next主题个性化美化的解决方案
  8. 好想找一个灵魂伴侣,然后带着他一起周游世界,会实现吗?
  9. risc 服务器 操作系统,数据中心系统用RISC还是CISC?
  10. spc 统计过程控制(Statistical Process Control)分析软件
  11. 删除桌面右键菜单中的英特尔核心显卡选项
  12. 2010年3月刷Q币最新代码
  13. WORD中图片叠加背景融合的方法
  14. 【Java】渐变头像生成-代码实现
  15. C语言/C++编程学习:和QT零距离接触的意义
  16. vue 环信im 发送图片、接收图片
  17. 大道至简——RISC-V架构之魂(中)
  18. java/php/net/python西石大快递代取系统设计
  19. 我的几个提升工作效率的小软件(持续更新中...)
  20. HashMap原理浅析(关于红黑树是什么?)

热门文章

  1. 【渝粤教育】广东开放大学 网络整合营销 形成性考核 (53)
  2. 计算机基础知识表格加密管理,【事业单位考试】计算机网络知识:数据加密技术之密钥管理...
  3. java content()_Java contentEquals() 方法
  4. datagrid 小数点_EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题...
  5. Java德才论宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之 小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若
  6. 数据结构,Java实现递归回溯,寻找出迷宫路线,解决迷宫问题
  7. java 访问内部类的属性_java中的内部类详细总结
  8. taro 重新加载小程序_Taro开发微信小程序的初体验
  9. centos7.5部署ELk
  10. Duilib嵌入CEF以及JavaScript与C++交互