Python5个内建高阶函数的使用 您所在的位置:网站首页 python查看模块函数用法 Python5个内建高阶函数的使用

Python5个内建高阶函数的使用

#Python5个内建高阶函数的使用| 来源: 网络整理| 查看: 265

本文结合各种实际的例子详细讲解了Python5个内建高阶函数的使用,能够帮助理解Python的数据结构和提高数据处理的效率,这5个函数分别是:

map

reduce

filter

sorted/sort

zip

79c32d28-584b-11eb-8b86-12bb97331649.jpg

一、map

1.1 语法

map函数的基本语法是map(func, seq),其含义指的是:对后面可迭代序列中的每个元素执行前面的函数func的功能,最终获取到一个新的序列。注意:

Python2中直接返回的是一个列表

Python3中返回的是一个可迭代器,如果想返回列表,可以使用list()进行处理

help(map) # 查看帮助信息

79e44224-584b-11eb-8b86-12bb97331649.jpg

1.2 demo

通过举例说明map函数的使用方法

使用Python内置函数

7a3b4a6a-584b-11eb-8b86-12bb97331649.jpg

使用自定义函数

7a5a8f6a-584b-11eb-8b86-12bb97331649.jpg

使用匿名函数lambda

使用匿名函数的时候可以有多个参数

7a7a2c8a-584b-11eb-8b86-12bb97331649.jpg

二、reduce

2.1 语法

reduce函数的定义:

reduce(function, sequence [, initial] ) -> value

reduce依次从sequence中取一个元素,和上一次调用function的结果做参数,再次调用function。

第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence的第一个数

2.2 使用

Python3中已将reduce函数移到functools模块中,需要先进行导入:

from functools import reduce # 导入help(reduce) # 查看帮助文档

7aa32eaa-584b-11eb-8b86-12bb97331649.jpg

上面的例子我们通过一个图形来解释说明:

7ad0b0f0-584b-11eb-8b86-12bb97331649.jpg

2.3 demo

使用自定义函数

7af4c774-584b-11eb-8b86-12bb97331649.jpg

使用匿名函数lambda

7b1a6bdc-584b-11eb-8b86-12bb97331649.jpg

image-20201024185550970

一个复杂的例子

7b385462-584b-11eb-8b86-12bb97331649.jpg

具体过程为:

1.1*2+1=3 2.3*3+1=10# 第一个3为上面的结果3,第2个原始数据中的3 3.10*4+1=41

带有初始值的例子

初始化值和序列中的第一个值执行func函数,将得到的结果作为下次的起始值

7b76dfb6-584b-11eb-8b86-12bb97331649.jpg

# 具体过程解释为 1.6+1=7 2.7+2=9 3.9+3=12 4.12+4=16 5.16+5=21

三、filter

3.1 语法

filter()函数用于过滤序列,过滤掉不符合条件的那些元素,返回符合条件的元素组成新列表。

序列中的每个元素作为参数传递给函数进行判断,返回True或者False,最后将返回True的元素放到新列表中。

filter()语法如下:

filter(function, iterable) # 前者为函数,后者为待执行的序列

3.2 demo

help(filter) # 帮助文档

7b96e5f4-584b-11eb-8b86-12bb97331649.jpg

使用自定义函数

返回10以内的偶数

7bb871f6-584b-11eb-8b86-12bb97331649.jpg

使用匿名函数lambda

7c04fdfa-584b-11eb-8b86-12bb97331649.jpg

对字符串的筛选

选择符合指定要求的字符串

7c376dda-584b-11eb-8b86-12bb97331649.jpg

四、sorted

4.1 语法

sorted(iterable, key=None, reverse=False)

4.2 3个参数

sorted()接受3个参数,返回的是一个排序后的列表

可迭代对象iterable

reverse=False,接受一个布尔值,选择是否反转排序结果,默认是False

接受一个回调函数key=None,回调函数只能有一个参数,根据函数的返回值进行排序

4.3 demo

help(sorted) # 帮助文档

7c74abaa-584b-11eb-8b86-12bb97331649.jpg

默认不反转

7c9681b2-584b-11eb-8b86-12bb97331649.jpg

对元组、range对象、字典的排序

7cc9331e-584b-11eb-8b86-12bb97331649.jpg

4.4 结果反转

结果反转的意义就是将结果降序排列,因为原本默认是升序的,使用的是reverse=True

7cf8dbaa-584b-11eb-8b86-12bb97331649.jpg

4.5 理解key

key参数的作用是我们自定义一个函数,然后通过将序列中的元素作用于函数之后再进行排序

在这里我们使用绝对值函数

7d16a89c-584b-11eb-8b86-12bb97331649.jpg

7d350fda-584b-11eb-8b86-12bb97331649.jpg

4.6 对比sort()

sort()方法只能对原列表list进行排序,参数和sorted是相同的

结果是将原来的列表直接原地修改,而sorted 是生成新的列表,二者是不同的

7d634652-584b-11eb-8b86-12bb97331649.jpg

五、zip

zip()是Python中一个非常重要的方法,能够快速的实现很多功能。

5.1 语法

zip([iterable,...]) # iterable是一个或者多个可迭代器

函数执行的结果在Python3中返回的是一个zip对象,如果需要展示成列表的形式,直接使用list方法展开;展开的结果是列表中嵌套元组的形式

在Python2中直接返回的是元组列表形式

help(zip) # 查看文档

7d8a8abe-584b-11eb-8b86-12bb97331649.jpg

5.2 zip接受一个序列

zip中可以接受列表、元组、字符串等形式

7dbbdefc-584b-11eb-8b86-12bb97331649.jpg

zip接受空列表的形式,返回的仍空列表

7dee4eaa-584b-11eb-8b86-12bb97331649.jpg

5.3 zip接受多个序列

7e24430c-584b-11eb-8b86-12bb97331649.jpg

同时对不同类型的序列进行合并

7e547838-584b-11eb-8b86-12bb97331649.jpg

5.4 处理长度不同

当多个序列同时存在,取长度最小的那个序列的长度

7eac1d40-584b-11eb-8b86-12bb97331649.jpg

5.5 zip(*iterables)

我们一般认为该方法是zip的反过程,是一个unzip的过程,举例说明其使用:

7edc2e18-584b-11eb-8b86-12bb97331649.jpg

5.6 复杂例子

下面看一个更为复杂的例子

7f11c910-584b-11eb-8b86-12bb97331649.jpg

这个例子的解释为:

[x]是一个列表中含有列表,x本身就是一个列表

[x]*3结果为[x,x,x],实际上也是[[4,5,6],[4,5,6],[4,5,6]]

[*[x]*3]的结果则为[(4,4,4),(5,5,5),(6,6,6)]

5.7 zip运用

下面通过zip的实际例子来说明它的应用:

列表求和

7f3d2380-584b-11eb-8b86-12bb97331649.jpg

数据合并

7fa167f0-584b-11eb-8b86-12bb97331649.jpg

字典的key-value转换

for循环实现:

7fbce2b4-584b-11eb-8b86-12bb97331649.jpg

使用zip实现:

7fecd6b8-584b-11eb-8b86-12bb97331649.jpg

责任编辑:lq

原文标题:Python 高阶函数使用总结

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

扫一扫,分享给好友

复制链接分享 评论

发布评论请先 登录

相关推荐

C语言有哪些语法技巧和功能 C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非.... 的头像 strongerHuang 发表于 03-10 17:42 • 627次 阅读 python花式导包的八种方法 python花式导包的八种方法1. 直接 import人尽皆知的方法,直接导入即可 [code]>>> import os >>> os.getcwd() '/home/xxx'[/c... 发表于 03-10 16:51 • 511次 阅读 python花式导包的八种方法 python花式导包的八种方法 1. 直接 import 人尽皆知的方法,直接导入即可 import.... 的头像 python爬虫知识分享 发表于 03-10 16:48 • 114次 阅读 python安装第三方包的八种方法 python安装第三方包的八种方法1. 使用 easy_installeasy_install 这应该是最古老的包安装方式了,目前基本没有人使用了。下面是 ... 发表于 03-10 16:29 • 780次 阅读 python安装第三方包的八种方法 python安装第三方包的八种方法 1. 使用 easy_install easy_install .... 的头像 python爬虫知识分享 发表于 03-10 16:27 • 106次 阅读 今天咱们用Python整一个超级玛丽游戏 | 附带源码 开发环境Python版本:3.7.8相关模块:requests模块;tqdm模块;pyfreeproxy模块;pyecharts模块;以及一些python自带的模块。... 发表于 03-10 14:26 • 222次 阅读 今天咱们用Python整一个超级玛丽游戏 | 附带源码 如何在RK3288上安装Opencv? 如何在RK3288上安装Opencv? 发表于 03-10 06:49 • 38次 阅读 使用GoRK3288库的时候需要用到的语法有哪些呢 使用GoRK3288库的时候需要用到的语法有哪些呢?... 发表于 03-10 06:49 • 32次 阅读 如何才能在RV1109平台上编写基于USB Camera的demo程序? 如何才能在RV1109平台上编写基于USB Camera的demo程序?... 发表于 03-10 06:15 • 42次 阅读 C语言简单模拟委托与简单模拟反射 函数是C语言的核心概念。主调函数(caller)调用被调函数(callee)是一般的调用关系,如果被.... 的头像 硬件攻城狮 发表于 03-09 17:17 • 729次 阅读 什么是python包、模块和库? 1. 模块以 .py 为后缀的文件,我们称之为 模块,英文名 Module。 模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码... 发表于 03-09 16:48 • 405次 阅读 python包、模块和库是什么 1. 模块 以 .py 为后缀的文件,我们称之为 模块,英文名 Module。 模块让你能够有逻辑地.... 的头像 python爬虫知识分享 发表于 03-09 16:47 • 147次 阅读 python类的多态和类的property属性 python类的多态多态,是指在同一类型下的不同形态。 比如下面这段代码 [code]class People:     def speak(self):... 发表于 03-09 16:38 • 431次 阅读 python类的多态和类的property属性 python类的多态 多态,是指在同一类型下的不同形态。 比如下面这段代码 class People.... 的头像 python爬虫知识分享 发表于 03-09 16:37 • 129次 阅读 用Python学习科学编程 用Python学习科学编程,Python经典教材。 发表于 03-09 15:00 • 6次 阅读 VMA和LMA的基本概念简介与常见问题解析 VMA和LMA的基本概念与常见问题解答 摘要:本文介绍VMA和LMA的基本概念,并针对一些理解过程中的常见疑问做出解... 发表于 03-09 06:45 • 117次 阅读 怎样在debian下安装python3+pymssql呢 怎样在debian下安装python3+pymssql呢?有哪些安装步骤?... 发表于 03-09 06:32 • 59次 阅读 python类的继承详解 python类的继承 类的继承,跟人类繁衍的关系相似。 被继承的类称为基类(也叫做父类),继承而得的.... 的头像 python爬虫知识分享 发表于 03-08 16:40 • 297次 阅读 python私有变量和私有方法 python私有变量和私有方法 1. 下划线妙用 在 Python 中,下划线可是非常推荐使用的符号.... 的头像 python爬虫知识分享 发表于 03-08 16:30 • 345次 阅读 一文详细了解量子密码 被喻为“重要数据保险箱”的安全芯片已经渗入人们生活的方方面面。随着5G、物联网、车联网的迅速发展,为.... 的头像 上海航芯 发表于 03-08 10:32 • 241次 阅读 python静态方法与类方法 python静态方法与类方法 1. 写法上的差异 类的方法可以分为: 静态方法:有 staticme.... 的头像 python爬虫知识分享 发表于 03-07 16:56 • 366次 阅读 python类的理解与使用 python类的理解与使用 1. 通俗理解类 类(英文名 class),是具有相同特性(属性)和行为.... 的头像 python爬虫知识分享 发表于 03-07 16:51 • 356次 阅读 HF、HNO3和H2O体系中硅的化学刻蚀实验 本文研究了HF、HNO3和H2O体系中硅的蚀刻动力学作为蚀刻剂组成的函数。蚀刻速率与蚀刻剂组成的三轴.... 发表于 03-07 15:27 • 6次 阅读 HF、HNO3和H2O体系中硅的化学刻蚀实验 python如何捕获异常和主动抛出异常 python如何主动抛出异常和捕获异常 1. 如何抛出异常? 异常的产生有两种来源: 一种是程序自动.... 的头像 python爬虫知识分享 发表于 03-04 17:09 • 638次 阅读 Python中有哪些常见的错误和异常 python常见异常类型 在程序运行过程中,总会遇到各种各样的问题和错误。 有些错误是我们编写代码时.... 的头像 python爬虫知识分享 发表于 03-04 16:58 • 645次 阅读 python变量的作用域 python变量的作用域 1. 作用域 Python的作用域可以分为四种: L (Local) 局部.... 的头像 python爬虫知识分享 发表于 03-03 16:50 • 379次 阅读 python偏函数和泛型函数详解 python偏函数 假如一个函数定义了多个位置参数,那你每次调用时,都需要把这些个参数一个一个地传递.... 的头像 python爬虫知识分享 发表于 03-03 16:43 • 391次 阅读 python高阶函数详解 python高阶函数 1. map 函数 map 函数,它接收两个参数,第一个参数是一个函数对象(当.... 的头像 python爬虫知识分享 发表于 03-02 16:47 • 163次 阅读 python高阶函数详解 python匿名函数的使用 python匿名函数的使用 匿名函数(英语:anonymous function)是指一类无需定义标.... 的头像 python爬虫知识分享 发表于 03-02 16:42 • 156次 阅读 三星电子开发PM1743高性能PCIe 5.0 SSD 罗德与施瓦茨利用R;S TS-RRM-NR测试系统验证首个5G RRM FR2 2xAoA 在MWC 22巴塞罗那期间,华为轮值董事长郭平在线发表了题为《向上,点亮未来》的主题演讲。当今世界面.... 发表于 03-02 10:44 • 34次 阅读 11个案例讲解python函数参数 函数,在定义的时候,可以有参数的,也可以没有参数。 的头像 python爬虫知识分享 发表于 03-01 16:39 • 221次 阅读 详解python普通函数创建与调用 函数是一种仅在调用时运行的代码块。您可以将数据(称为参数)传递到函数中,然后由函数可以把数据作为结果.... 的头像 python爬虫知识分享 发表于 03-01 16:32 • 216次 阅读 python推导式是什么 python推导式 推导式(英文名:comprehensions),也叫解析式,是Python的一种.... 的头像 python爬虫知识分享 发表于 02-28 17:13 • 179次 阅读 python while循环详解 python while循环 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处.... 的头像 python爬虫知识分享 发表于 02-28 16:39 • 157次 阅读 《深入Python3》中文版pdf 《深入Python3》中文版pdf 发表于 02-28 09:45 • 22次 阅读 《Dive Into Python》中文翻译版.pdf 《Dive Into Python》中文翻译版.pdf 发表于 02-25 17:22 • 23次 阅读 python for循环的案例说明 python for循环 for 循环可以遍历任何序列的项目,如一个列表或者一个字符串。 它的基本语.... 的头像 python爬虫知识分享 发表于 02-25 16:27 • 203次 阅读 python判断语句的详细说明 python判断语句:if 1. 简单小例子 如果满足条件 A,则执行代码块 a,否则执行代码块 b.... 的头像 python爬虫知识分享 发表于 02-25 16:22 • 208次 阅读 python生成器是什么 python生成器 1. 什么是生成器? 生成器(英文名 Generator ),是一个可以像迭代器.... 的头像 python爬虫知识分享 发表于 02-24 15:53 • 219次 阅读 python迭代器详解 python迭代器 1. 可迭代对象 可以利用 for 循环的对象,都叫可迭代对象。 列表、元组、字.... 的头像 python爬虫知识分享 发表于 02-24 15:42 • 189次 阅读 初学者学Python必看的几个练手小项目 Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python.... 的头像 叶枫架构师 发表于 02-23 17:06 • 279次 阅读 4个Python经典项目实战,练手必备! Python是一种极具可读性和通用性的编程语言。Python这个名字的灵感来自于英国喜剧团体Mont.... 的头像 叶枫架构师 发表于 02-23 17:06 • 261次 阅读 python集合是什么 python集合 集合(英文名 set),它是一个无序的不重复元素序列。 这里面有两个重点: 无序,.... 的头像 python爬虫知识分享 发表于 02-23 17:01 • 250次 阅读 python字典是什么 python字典 字典(英文名 dict),它是由一系列的键值(key-value)对组合而成的数据.... 的头像 python爬虫知识分享 发表于 02-23 16:54 • 225次 阅读 python元组的详细介绍 python元组 元组(英文名 tuple),和列表非常的相似,它也是由一系列元素按顺序进行排列而成.... 的头像 python爬虫知识分享 发表于 02-22 15:19 • 144次 阅读 python列表的详细介绍 python列表 列表(英文名 list),是由一系列元素按顺序进行排列而成的容器。 这里面有两个重.... 的头像 python爬虫知识分享 发表于 02-22 15:14 • 151次 阅读 python cookbook(第三版)免费下载 python cookbook(第三版)免费下载。 发表于 02-22 13:57 • 43次 阅读 python运算符是什么 python运算符 0. 什么是运算符? 本章节主要说明Python的运算符。举个简单的例子 4 +.... 的头像 python爬虫知识分享 发表于 02-21 16:44 • 187次 阅读 python字符串格式化 python字符串格式化 格式化输出,主要有三种方式 使用 % 进行格式化 使用 format 函数.... 的头像 python爬虫知识分享 发表于 02-21 16:28 • 165次 阅读 python字符串格式化 python输入与输出详解 python输入与输出 无论是从我们一开始的“hello world”,还是前面章节的里各种例子,基.... 的头像 python爬虫知识分享 发表于 02-21 16:18 • 205次 阅读 python布尔值是什么 python布尔值 1. 什么是布尔值 但在Python语言中,布尔类型只有两个值 True :表示.... 的头像 python爬虫知识分享 发表于 02-21 16:10 • 176次 阅读 python整数与浮点数分解 2.3 python整数与浮点数 Python 支持的数字类型有三种:整数、浮点数和复数。 1. 整.... 的头像 python爬虫知识分享 发表于 02-18 09:09 • 273次 阅读 2.2 python字符串类型 2.2 python字符串类型 1. 如何定义字符串? 字符串是Python中最常用的数据类型之一。.... 的头像 python爬虫知识分享 发表于 02-17 17:08 • 175次 阅读


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有