图源: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

用好这三个函数,你的代码看起来会更好,循环数也会更少。熟能生巧,要多练习呀~

【编辑推荐】

【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0

提高python 程序运行速度_3个Python函数帮程序员们避免编写循环,提高运行速度...相关推荐

  1. linux和python那个好学_3个Python优秀实践初学者值得拥有!

    导读 这里小芯就给大家推荐3种编写Python的好方法,它们能帮你成为更好的程序员. 我们常常分享编程其实很简单的文章,给大家树立信心. 如果只是编写简单的程序,如果你只是想马上完成,一天的时间即可完 ...

  2. python自动修图_3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS

    原标题:3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS 文 | 苏克 1900@高级农名工 曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代 ...

  3. python pdf库_3个Python PDF库,提取信息、转换格式、分割剪裁有它就够了!

    Python无处不在,似乎支持从主要网站到桌面实用程序到企业软件的所有功能.Python已经被用来编写流行的软件项目,如dnf/yum.OpenStack.OpenShot.Blender.Calib ...

  4. python新奇检测_3种Python检测URL状态

    需求:Python检测URL状态,并追加保存200的URL 代码一: #! /usr/bin/env python #coding=utf-8 import sys import requests d ...

  5. python调用脚本_3种python调用其他脚本的方法

    1.用python调用python脚本 #!/usr/local/bin/python3.7 import time import os count = 0 str = ('python b.py') ...

  6. 一个c语言函数至少包含,【填空题】C语言程序一般由若干个函数构成,程序中应至少包含一个( ),其名称只能为( )。...

    参考答案如下 填空题[单选题]下列关于借贷记账法试算平衡的表述中,不正确的是( ).A. 试算平衡是为了检验一定时期内所发生经济业务在账户中记录的正确性 B. 试算平衡的方法包括发生额试算平衡法和余额 ...

  7. 微信小程序图片内容审核功能云函数+小程序端代码完整实现【填坑】

    文章目录 背景 实现 技术栈 小程序端 基本思路 主要代码 云函数 思考 主要参考 背景 开发微信小程序的同学如果涉及了社交类目,应该都会碰到由于缺少内容审核机制导致不过审的情况.微信小程序官方实际上 ...

  8. 《程序设计基础》 第十章 函数与程序结构 7-2 汉诺(Hanoi)塔问题 (20 分)

    古代某寺庙中有一个梵塔,塔内有3个座A.B和C,座A上放着64个大小不等的盘,其中大盘在下,小盘在上.有一个和尚想把这64 个盘从座A搬到座B,但一次只能搬一个盘,搬动的盘只允许放在其他两个座上,且大 ...

  9. 《程序设计基础》 第十章 函数与程序结构 6-5 递归求简单交错幂级数的部分和 (15 分)

    本题要求实现一个函数,计算下列简单交错幂级数的部分和: f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn 函数接口定义: double fn( double x, int n ); 其中题目 ...

最新文章

  1. android异常信息,Android 获取设备信息 异常
  2. 【转贴】龙芯内核发展策略 已经支持k8s
  3. php fetch mode,odbc_fetch_into
  4. Windows 10通过本地镜像离线安装.NET 3.5
  5. 我用超白痴的方法解出了这道题,大家有没有更好的方法
  6. CentOS7.6新增或修改SSH端口号的步骤
  7. 简单好用的钉钉群消息助手
  8. linux配置路由器命令手册,Linux配置路由器
  9. 利用Regsvr32绕过Applocker的限制策略
  10. 【bat/batch】bat中的转义字符
  11. 【Freeswitch从入门到精通】二、初识Freeswitch
  12. 给体制内新人的忠告:这10个“潜规则”咬紧牙别吱声,只做不说
  13. eclipse指定运行环境jdk的路径
  14. 仿交易猫 转转闲鱼源码 多版本合一
  15. 微博Python SDK 发微博
  16. java校园爱心公益平台设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  17. 日语配合计算机应用技术,基于计算机协同工作技术的日语语料库构建及应用
  18. 简易天体运动—— sun earth moon(计算机图形学)
  19. PoI 3.17 已过时代码对比
  20. 为什么需要使用可调DWDM SFP+光模块?

热门文章

  1. 一些关于java线程编程的事儿
  2. ZeroMQ(java)之负载均衡
  3. socket 套接字
  4. 运用Mono.Cecil 反射读取.NET程序集元数据
  5. ARM上的Bootloader的具体实现1071098736
  6. 学会科学饮水令你越喝越美
  7. Linux下架设rsync服务器
  8. “支付功能”怎么测试?
  9. 骆驼游戏 c语言,语言骆驼教案
  10. 新建的邮件服务器只能发件不能收件_49. Django 2.1.7 使用内置函数发送邮件