粉丝4442获赞1.7万

天,我们要讲的是拍摄里面的一个函数叫做 map, map 出自谷歌的一篇描述大数据处理的最基础的论文,叫做 map reduce。 map 是用来干什么的呢? map 函数 的第一个参数,首先接受一个函数指针,这个指针会作用到第二个参数,也就是一个数据结构,从 第一项开始到最后一项的每一个元素中,然后把这些元素添加到一个新的数据结构里面作为输出。 我们在手机上的 unix 上面用 vim 打开了这个程序。 好,首先呢定义了一个函数,这个函数返回一个数的平方,然后呢我们来看这个麦盘数,也就是今天要讲的这一个。第一个参数就是刚才定义的一个函数, 他会中到第二个参数,也就是一个数组,一二三四五六七八九里面的每一个数里面,他会计算一下他们的平方,然后重新定一个列表,然后呢就把这个列表通过 printer 函数,嗯,把它打印出来, ok, 好,嗯,我们现在呢用这个, 哎,用把那个拍摄程序运行一下, ok, 好,好,我们可以看到输出结果是那些输的平方。

map reduce 五个阶段说明 map reduce 是一种用于处理大规模数据的编程模型,它包括五个主要阶段,用于分布式数据处理和分析。以下是对这五个阶段的详细说明。一 input splitting 在输入阶段,原始数据被分成多个数据块, 通常称为切片。每个切片包含了输入数据的一部分。这个阶段的目标是将数据划分成适当大小的块,以便将其分配给不同的 map 任务。 two map 映射阶段是 map produced 第一阶段。在这个阶段,每个 map 任务接收一个或多个切片的数据,然后应用用户定义的 map 函数。 map 函数将输入数据转换成中间间值。对,这些中间间值对,用于后续的分区、排序和规约。 three shuff and shuffling 阶段是 map reduce 中的一个重要 中间步骤。与 shuffle and sword 阶段类似。在这个阶段, map 任务生成的中间建值对会被分组、分区和排序,这确保了相同键的数据被聚集在一起,以便在 reduce 阶段进行进一步的聚合操作。 for reducing 公约阶段是 map reduce 的第二阶段。 在这个阶段,美国 reduce 任务接收一组以排序的中间键值,对这些键值对于一个或多个键相关联。 reduce 函数对这些数据执行特定的聚合操作,生成最终的输出。 five output 输出阶段是 map reduce 的最后一个阶段。在这个阶段, reduce 阶段生成的最终结果会被写入分布式文件系统或其他输出介质,以供后续分析或使用。通常输出数据会按键排序。请注意,这五个阶段 构成了一个完整的 map reduce 任务的生命周期,但有些版本的文档可能对这些阶段的描述略有不同。总之, map reduce 模型通过自动化和并行处理,使大规模数据处理任务更容易管理和执行。

大家好,今天我们来学习一下 python 中的 map 函数和 filter 函数。我们先简单的讲一下这两个函数的用法。 map 函数,它的第一个参数是 funk, 给它制定一个函数, 第二个参数是一个可叠加对象,比如说 list, 它的作用就是将 list 中的每一个元素都当做参数传递给 funk, 然后返回由 funk 的返回值组成的可叠加对象。第二个函数 builder, 它的第一个参数也是一个 funk, 第二个参数也是一个可迭代对象。 list, 它是将 list 中每一个元素都传给 funk, 然后 funk 里面它会有一些条件判断,如果它满足 就返回,不满足就不返回。整个函数返回的也是由满足 funk 函数的条件的元素组成的。表决带对象。好,我们来开始今天的案例,筛选出年龄大于等于三十的人,然后将其工资翻倍。 第一步,我们需要用到刚才学习的 filter 函数。 filter 函数的第一个参数是一个函数,我们可以先自定义一个 def, 用于筛选年龄大于三十的人,我们就来一个 filter age, 它的参数是一个人的信息 person, 它的作用是筛选年龄大于三十的人,我们就直接 return 大于等于三十。 现在我们将函数 m g 给 builder, builder age, 注意不要加括号。第二个参数,我们将 people info 传进去一个可叠的对象, 它的返回值我们用 filter people 来接收一下, 现在我们打印一下试试 print filter people, 发现他是一个可怜的对象, 我们可以用 list 直接转换一下它, 这样的话,年龄大于三十的人我们就筛选出来了。第二步,我们需要将筛选过的人物信息把他们的工资翻倍。这时候我们可以用 map 函数 map, 那第一个需要指定的函数也是一个 funk。 我们先定义一下 deaf double gallery 参数,给一个 person 兼取 person 的工资, person salary 将他的工资翻个倍乘等于二。最后我们 retean 一下 person, 这时候我们回到 map 函数,先将 double salary 传进去,注意也不要加括号。第二个,将我们筛选过的人物列表传进去。 builder people 和 filter 函数一样,它也是返回一个可叠的对象,我们可以用 list 直接转换一下。 最后我们得到我们需要的结果,打印一下, 我们发现人物列表的工资都成了一个二。本期的案例就到这里,谢谢大家。

今天我们讲一下内置函数麦谱,麦谱它接受一个函数,第二个接受一个可叠带对象,它反复一个,将函数应用于可能的叠带对象中每一项输出结果的一个叠带器。也就是说返回一个叠袋器, 如果插入了额外的可叠带对象的参数的话,这个函数必须要接收相同过数的参数,并应用于中并行的相当,有多个的话,最短的耗尽,总的叠带结束,我们直接看,简单的不愁那么远。比如说我们这接收一个函数,第二个,我们这个是可叠带对象,这是一个列表,我们也可以通过润剂来生成。 比如说我们将这个列表里面的每一个数都进行一个平方,我们刚刚说了迈普,他返回的是一个叠带器,我们这要用利斯特来强制转换为列表,然后再打印一下,我们执行一下,看一下结果,非常的简单,一四九十六。

大家好啊,这一节我们来讲解麦盘素,嗯,又是一个新的函数。 好,呃,我们主要着重讲解麦盘素它有什么样的作用,以及啊如何使用它。好,先来看麦盘素它是干啥的? 那么麦盘数实际上是什么呢?实际上是通过便利一个集合当中的每一个元素,就是把每个元素度过一遍,然后呢,他要针对这个元素进行一个给定的操作。所谓叫给定的操作,就是执行一个特定的函数, 把每个元素都执行一遍,每个元素执行完这个函数是不是得到一个结果呀?对不对?也就是 说他最后给你返回一个迭代器,让你干嘛?让你利用这个迭代器可以得到那个计算之后的结果的集合, 能绕的过来吧,一个列表,一个列表里面放着一二三三个元素,比如说 map 函数会干什么呢?会对这三个元素挨个进行计算,每个元素都会计算,得到一个结果,就是结果一,结果二,结果三,他然后返回一个迭代器给你,你呢?可以利用这个迭代器得到他的 结果一,结果二,结果三的集合。这样说很容易理解了吧?好,那么他的使用格式非常的简单,你调用 map 这个函数,你给他俩参数,第一个参数是一个,是一个函数, 就是其实说白了,至于怎么对这个元素进行怎样的计算,是由你说了算的,并不是由 map 说了算的, map 所干的事情就是帮你去便利,帮你去挨个执行,但是执行什么由你说了算。 第二个参数是一个 list, 就是你想对谁干这个事情,然后呢,这个函数最后结果会给你返回一个 iterate 迭代器。 对迭代器,通过前面的这个学习,你应该有所了解了啊,迭代器是个什么玩意?你可以用 next next 针对迭代器去取得它的每一个值,你也可以用破循环把迭代器里面所有能够迭代到的东西全都列出来。好,这就是 map 函数。我们经过 这样一个讲解,你的脑海当中应该有了一个概念了,然后接下来就是我们来写程序,是吧?你再一看我这 ppt, 怎么你写这么大一块黑的,怎么没有程序呢?里面以前都看到程序的呀,哎,今天我就改一下,我不把程序写在上面,咱们现场来直接敲 看看。大家在看视频的时候,如果没有预先看到这个程序,直接看我敲,又是一个什么样的感觉啊?好了,当然看不看其实无所谓了,我只是懒得把这个程序写在这里了。哈哈,好, 那么我们的例,例子是什么?就是比如我们想把一个列表当中所有的工资全部提高百分之十。好了,那我们来写, 我们来写工资啊,随便写了哈,有人六千八,有人八千,有人七千五, 是吧?有人可怜的只有四千。好了,随便多少了。那么我们要做的事情是什么?是要把里面的值全部提高百分之十,如果没有 map, 我们会怎么做? 我们会有这么一个 result 用来存放结果,把它准备好,我们会写一个 four 循环,比如说 s in。 不好意思啊,怪不得,不对,你是是 a。 好,然后我会便利 这个现有的工资,然后干什么事情呢?然后把这每一个工资呀都乘以十,就是把这个 s 乘以十呢?乘以这个一点一, 对吧?乘以一点一吗?不是百分之十吗?加百分之十上去乘乘出来的结果放到哪里去呢?放到那个结果集里面,就是调用结果集的啊, panda, 把这个盛出来的结果放到里面去,循环一遍,挨个放,放完之后咱们打印一下 result, 那这个里面的内容就是我们把结果提升百分之十之后的内容,是吧?提升百分之十之后的内容, ok, 这是一种写法,很常见的写法,也是比较普通的写法,但是在拍手里面,你没有必要非这么干,你可以非常简单的来这样写, 非常简单来这样写啊,刚才我们学到了 map, 大概还有印象, map, 我要 map 干什么呢?我要刚才说有个函数,然后我要对这个, 我要对这个我的 copy 进来,他不知道为什么不出现啊,可能是因为前面有一法错误啊。好,我前面是个函数,后面我要对这个列表进行一个操作,我这个函数的任务就是什么?就是把 列表中的每一个元素增加百分之十。那有人说拿来你得先定义一个函数啊。别呀,咱们前面不是学过 lam 的表达式了吗?你学学使用 lam 的吗? 对不对?那么大。前面是参数,这个参数就是你后面列表中每一个元素要传给我的值,你会放到我的参数里,所以我的参数,比如说叫 s, 然后我这个让我们来返回的结果应该是什么呢?就是 s 乘以一点一,这就是我要返回的结果, 这不就是我的函数吗?我这函数就是你传给我一个值,我乘以一点一返回出去。匿名函数吗?交给他了对不对?好,这样子,这个麦克刚才 说了,他返回的是一个迭代器,但是这个迭代器我们还得用 next, next next, 把他的纸全都拿出来,放到一个新的列表当中吧? 你这太麻烦了,再教大家一个更神奇的,直接用 list 弄个括号就行了。又是一个函数,叫 list, list 的任务就是把一个迭代器可以看得到的所有的东西拿出来放到列表里。所以你看,我把这个程序一句话完成了, 这一句话完成,拆开来读,很好办。首先你看这个是麦克函数,麦克函数需要两个参数,第一个参数是一个函数,我用拉姆达表达式定义的一个函数。第二个参数是一个列 表,我把列表给他,那么这个麦盘函数就会送出一个迭代器,用来迭代计算出的结果的那个列表。 然后我把这个迭代器作为参数传给类似的函数,类似的函数专门接受这样的参数。 我把这个迭代器传给类似的函数,类似的函数就能自动把那个迭代器迭的出来的结果放成一个链表,最后放到 result, 然后我打印就完成了,再来运行,你看结果没有变化, 生气吧?刚才写了好多行,现在你用一行就可以把这复杂的事情全都搞定。 所以这个里面我们用到了 map 函数,当然还顺便用到了 list 函数,说他们都在干什么样的事情,你现在应 应该一目了然了,只不过一下子可能还不能得心应手去记住他。 ok, 这是我讲的用麦盘函数的一个例子。 再来讲第二个例子,有的时候我们 list 里面放的不是一个简简单单的整肃,而是一个学生的集合。所以之前我也经常举到这样的例子,这里面放的是原主。 那现在咱们前面其实干过类似的事情,现在我就想什么?我就想把这一个 list 里面所有学生的年龄提取出来,放到一个新的 list 里面, 这跟刚才又有点不太一样,对不对?但是跟刚才又有点相 四,差别就在于我的列表内容变了,咱们吧 students, 我的内容变了,我这个内容里面放了,你就说,然后二十三, 然后这个是二十一,逗号。 再比如说有人说了,你就知道这三个名字吗?我懒得去想,起名字可麻烦了。好了, students 有了, 这是一个列表,列表里有三个对象,每个对象都是个原组,然后我要把他的年龄拿出来,怎么拿?放到一个结果里面,对不对? 所以我要把 aj 四全部拿出来,怎么办呢?我还是像刚才一样倒过来写,并不是先写,我们知道的是要用 map 来做事情, map 的任务就是你得给他一个函数, 你得给他一个函数,这个函数的任务就是,知道吧,在便利这个 list 的时候,他的每一个值就是一个原组,对不对?所以我这个函数的任务就是,当我拿到原组的时候,我要把里面二十三拿出来, 对不对?我要把里面二十三拿出来,当我拿到原组的时候,我要把二十三拿出来。好,那我拉姆拉表达是,拉姆拉表达是,表达是 你给我的是一个,是一个原组,是一个学生,那么叫 s, 我要送出来的是 s 里面的第一个元素,没错吧? s 是一个原组吗?原组里面第零个元素是名字,第一个元素是年龄吗?我要送出来的是这个吗? 能不能表达是写好了函数给,然后给他集合好麦克函数,给我们返回了一个迭代器,然后我们要把迭代器交给 list 这个函数,所以外面再套一层, 于是你就拿到一个 list, 然后把结果放在 aj 四这个变量里,我们来打印一下 aj 四这个变量是不是就拿到了我们年龄的集合?二十三,二十一,二十,再运行一下看看结果,二十三,二十一,二十, 方便吧。所以这一个例子是我啊,比较推荐,大家一定要掌握的。这在将来写程序的过程当中是经常用的类似的东西, 就是我们经常会拿到一个类似的,类似的里面放了一组对象,这个对象里面有很多的纸,我们有的时候就需要拿到这一组对象里面的某一个纸。 对啊,我想把你你拿到的都是员工,我就想把这些员工的工资列表全部打印出来,我就好奇想知道,哎,用慢就能实现 好,这是使用 map 这个函数操作的第二个例子,也是我比较推荐经常用的一个例子。大家呢,不妨, 因为看过我的这个视频之后,你不妨把视频合起来,把我把你看到的程序忘记,然后你用你刚才所理解的内容,你也把它重新敲一遍,写一遍,练成功了, ok, 你就掌握了。好,谢谢,喜欢请点赞定律。

用 python 提升你的能力境界篇十点三应用 securemat 在前面的课程中,我们介绍了 secure 注入漏洞的原理。我们安装了一些必要的工具, 包括火狐浏览器的 max hike bar 插件以及抓包工具 fiddle 以及 circle map。 这节课呢,我们学习一下使用应用 circle map 的方法。 我们在应用 circle map 之前要查找 circle 注入漏洞。 查找烧烤注入漏洞有两种方法。第一种方法呢,就是首先使用 a w v s 或 a p p skin 对网站进行扫描, 然后我们根据扫描的结果进行分析,找到 circle 注入漏洞。第二种方法就是手动查找 circle 注入漏洞。 首先呢,我们要找到与数据库交互的功能页面, 然后呢,我们判断这个页面是否存在 circle 注入漏洞。我们主要使用了火狐浏览器的 max xbox 插件儿,或者是使用了代理工具 fiddler 来查找这个页面是否存在 circle 注入漏洞。 如果存在 circle 注入漏洞,我们可以利用 circle 注入漏洞读取数据,然后呢导出所需的 数据。最后呢两步呢,我们主要使用了 soca map, 下面呢,我们介绍一下 soca map 的功能。 soca map 是一个自动化的 soca 注入工具,主要功能是扫描发现并利用给定的 url 的 soca 注入漏洞。 school map 支持的参数位置包括 gate, post, cookie, h t t p, user agent, request, header, sql 脉魄支持的测试技术包括基于布尔的帮助,基于时间的帮助,基于报测的注入 以及联合查询注入,即可以使用 union 联合查询的注入 以及堆查询注入,即可以同时进行多条语句执行的注入。下面我们介绍一下应用 scoll map 的流程。 首先呢,我们打开 windows 的命令行窗口,然后呢,切换到 score map 所在的文件的位置。 然后呢,我们使用 circle map 扫描指定的 url。 我们需要输入这段语句 python circle map 杠 u url url 呢就是网址。 如果我们发现了 circle 注入 logo, 则可以列举数据库的名称。我们使用下面的语句 passing circle map 点 p y 杠 u u i l 杠杠 d b s 假设其中的一个数据库的名字为 data base, 一则可以获取数据库中的表明。 我们需要使用下面的语句 python circle map 点 p y 杠 u u i l 杠 d 大写的 d databases 一。然后杠杠 tables。 假设该数据库下的 data base is 以下的一个数据表名为 table, 一则可以获取该数据表的自断名。 我们需要使用下面的语句 python circle map 点 p y 杠 u u i l 杠 d databases e 杠 t table 一杠杠 columns 假设数据表 table 一的自断分别为 name id, 则可以获取该自断的内容。 需要使用下面的语句 python circle map 点 p y 杠 u u i l 杠 d database e 杠 t table e 杠 c i d 逗号 name 杠杠 d u m p 当然,我们在书中还介绍了其他使用 scoremap 的方法。 scoremapper 的应用方法其实很多,大家可以看一下 scoremap 的常用参数,大家可以看一下这张表格,我们可以通过 杠杠 update 更新烧烤卖。我们通过杠 h 查看常用的参数。我们可以通过杠 worship 查看版本,我们可以通过杠 v 查看执行过程信息。 我们可以通过杠 d 后面的就是一个支付串,支付串中包括 myserk 就是数据库的 类型。 user password 表示服务器的账号和密码,艾特表示要连接的服务器。后面的 day time 表示要连接的数据库名称。杠 u u i l 向指定的 u i l 发送 get 请求 杠啊 request 点 text 发送 post 的请求,请求文件的数据可以从抓包工具中获得。 我们可以使用杠杠 cookie, 使用 cookie 身份认证,我们可以使用杠杠 user agent, 使用浏览器代理信息我们可以使用杠杠 redom agent, 使用随机的浏览器代理信息, 我们也可以使用杠杠 force 杠 s s l 使用 h t t p s 连接进行扫描。当然这个表并不完整,完整的表大家可以看一下书中的介绍。

在拍摄中,通过 us 点 pass, 点 gets sex 就可以获取到文件的大小。 gets sets 翻译成中文就是获取大小的意思。 执行该方法后,会以字结为单位返回对应的文件的大小。如果传入的参数不是文件,那么返回零,如果传入的路径不存在,程序就会异常。

朋友们大家好,接下来我要讲解的内容是列表渲染的第二个前置知识点,他就是扎巴斯快的当中速组下面的迈普方法,因为在 red 当中,列表渲染最常使用的就是这个迈普方法,那么迈普方法它的作用是什么呢? 麦克方法允许我们依次对速速中的每一个纸进行转换,转换之后的纸呢,会被放置在一个新的速度当中,而这个新的速度呀会作为麦克方法的返回值存在。 我们来看下面这段视力代码,在这段视力代码当中,我们使用赖的关键字声明了,而未变量他的值呢是一个数组,数组当中存储了一二三四。接下来我们要做的事情呢,就是让而为数组中的每一个值和他自己的下标进行相乘, 将每一个值相乘的结果呢,再放置在一个新的速度当中,这样的需求呀,我们就可以使用迈步方法实现,因为 迈步方法的作用呢,就是对速速当中的每一个值进行转换的,所以接下来我们使用而为速速调用了迈步方法。在调用迈步方法的时候呀,他要求我们传递一个回调函数进去, 在迈步方法内部他会便利而为这个速速,在便利的过程当中呢,每次他都会调用这个回调函数,在调用这个回调函数的时候呢,他会将当前便利项以及便利沙标作为参数传递给这个回调函数, 所以这个回答函数就会有两个参数,第一个参数呢就是数组的便利项,比如第一次便利就是值一,第二次便利呢就是值二,以此类推。第二个参数呢就是便利时的下标,比如第一次便利时就是零,第二次便利时就是一,以此类推。 好,现在我们需要的速组值以及值的下标我们就都能够拿到了。接下来在毁掉函数当中呀,直接将他们相乘就可以了, 然后我们还要将相乘的结果作为毁掉函数的返回值,因为迈普方法内部在调用这个毁掉函数以后呀,他要将毁掉函数的返回值放在一个新的速度当中,最后他再将这个新的速度作为迈普方法的返回值。 这样的话对于开发者来说呢,就可以通过卖方法的返回值的方式来取到转换之后的新的速度了。在我们的这个视力代码当中呢,就是尼尔瑞这个变量的值,当我们将尼尔瑞变量的值输出以后呢,我们就会发现它里面存储的是零二六十二,这正是我们想要的结果。 接下来呢我们就切换到编辑器当中来验证这个代码,在这个地方我们使用 rap 关键字声明了瑞,它里面存的是一二三四,然后我们通过而为这个变量去调麦克方法来对里面的每一个值进行转换。当我们调用麦克方法的时候,他要求我们传递一个回调函数,回调函数呢 有两个参数,一个是艾特,这个艾特呢就是当前的这个变相,比如说第一次就是一,第二次就是二,这个引代词呢就是他对应的下标,比如说他是零,他是一, 在这个回调函数当中呢,我们只需要将数数当前值以及他的下标相乘就可以了,而且我们还要将相乘的结果作为这个回调函数的返回值。接下来我们通过返回值尼尔瑞来接收麦克方法的返回值,然后呢我们输出了尼尔瑞, 接下来我们就切换到浏览器当中来看这个结果,注意看这个结果是不是零二六十二呀,这正是我们想要的结果。 好,这就是卖的这个方法它本身的作用,那接下来呢,我们再来看卖方法它的内部是如何实现的。这个卖的方法呀,是被定义在而为这个构造函数的原型下面呢,比如说在这个地方,我们通过而为点包头泰法向里面呢,添加了一个卖卖的方法,这个卖卖 就是我们自己定义的这个迈步方法,他的只是一个函数,这个函数呢,他接收了一个毁掉函数作为参数,那实际上就是这个回函数 在麦麦这个方法内部呀,我们使用腕关键字声明了蕊造的这样的一个变量,他的值呢是一个速度,蕊造的这个变量当中存储的就是最终麦麦的这个方法他的返回值,所以在最后我们通过蕊蹭关键字返回了他 在这个地方呢,我们通过后循环去便利了数组,那么这个类似就表示这个数组在这个地方呢,有的朋友可能不知道类似指到的是谁,在这个地方,如果说我们通过 rv 去调用卖方法的话,那么这个类似指向的是不是就是 rv 呀?好, 然后呢,我们在这个循环体当中调用你传递进来的这个回调函数,那么在调用这个回调函数的时候呢,我们将当前这个宿组的便利项以及这个便利的缩印传递到这个回调函数当中了, 也就是对应的 amt 和引带词。当调用完这个回调函数以后呢,我们将回掉函数的返回值后,是到蕊造的这个数组当中了,最后呢,我们又将蕊造他这个数组作为了这个方法的返回值,那么开发者是不是就能够通过返回值的方式来拿到转换之后的这样的一个值了呀?好, 接下来呢,我们使用 ctrl 加 c 复制这样一段代码回到编辑器当中,在这我们使用 ctrl 加 v 进行粘贴,粘贴完成之后呢,在下面啊,我们不调用麦克方法了,我们去调用麦麦克这样一个方法,然后我们再来看这个结果是不是还是这样 保存这个文件,我们切换到浏览器当中刷新一下,注意看这个结果呢,他是没有发生变化的,就说明当前我们自己所写的这个模拟的卖卖方法是没有问题的。好,这就是当前我们所讲解的 red 当中列表渲染的第二个前置支持点卖的方法的使用。

哈喽,大家好,今天我们来学习一下 python 的函数式编程。什么是函数式编程?它是一种抽象程度很高的一个编程范式,它最主要的特点就是允许函数本身可以作为一个参数传入到另一个函数,还允许返回一个函数。 这,嗯,这种方式在 face up 还是 java? 嗯,这样的一个面向对象的语言里边,他是不存在这种情况的。 呃,第二个主要内容就是一个高阶函数的一个学习。什么是高阶函数?嗯,他是可以让变量指向这个函数,而函数也可以作为一个参数来接受一个变量, 那么一个函数也可以做接收另一个函数作为一个参数,这种函数称作为一个高阶函数。 呃,可能有点绕。接下来我们接下来会通过三点来进行一个解释啊,还有 maple reduce 的高阶函数的一个使用 maple 函数。嗯, maple 和 reduce 函数都是允许我们把函数作为一个参数传递,但是他们在传递过程中都会有 不一样的要求。呃, map 函数在传递过程中呢?嗯,它要求函数 第一个函数是没有什么特别要求的,而第二个参数它必须是一个 interview, 也是个迭代对象。而 map 函数是把我们传入的迭代对象通过函数进行一个序列,序列转化的一个过程, 就是我们用函数进行把每一个迭代对象的数据进行一个计算过程,最终返回是一个迭代器对象 interreter。 而 reduce 函数在要求的过程中呢,我们必须传入一,传入的函数必须是有两个参数的, 我们当前这函数计数根据两个参数计算完成之后会与第三个参数再再嗯进行一个计算,这样不对,一个不断累计的一个过程,嗯,接下来我们通过代码来看一下具体怎么来实现的, 嗯,首先我们来看一下第一部分就是高阶函数,高阶函数的第一个呢,就是我们变量可以指向这一个函数,其中我们 patent 的例子,例子函数里有一个 absolute abs 这样取绝对值的一个函数,我们可以让方式这个变量指向这个 a、 b s 这样的一个函数,这是我们打印发现方式, 这时候这时候方程这样的一个变量指向的就是这样的一个 a b s 方程这样的一个函数,那我们直接用方式变量进行一个呃负二的取绝对值的一个过程,这时候我们发现我们是可以能够实现这 a b s 函数内部的一些计算过程呢,这是最终能够打印出零二。然后接下来第二个就是我们函数名也可以作为一个变量,就是说 abs 这样的一个函数,我们也可以作为一个,嗯, 让我们的变量指 abs 这样的一个函数可以指向一个变量 demo 是一个字符串这样的一个变量,这时候我们打印 bs abs 时候,这时候他会告诉我们 abs 现在只是一个变量,而不是一个函数。 而如果我们直接去用 id 去看的话,发现 e b s 指向的是一个内存区域,这时候它是一个 个内存地址,而不是一个函数了。那么第三个就是说我们可以把函数 作为一个对象传入到函数内部,这时候我们先命名一个 a a d 方审这样的一个函数,这是我们传入的参数有三个,第一个第一和第二个就是一个变量,而第三个我们传入的是一个函数, 在函数在 e d 的方式函数内部我们进行通通过 f 函 f 这个函数进行一个计算, 然后最终能够计算出一个结果,这时候我们通过调用 ad 方式,然后我们传入的是二跟三两个字符串,这时候我们 f 函数接受的是一个 int 这样的一个 呃计算,然后我们接下来会把二跟三转换成一个嗯数字,然后进行一个二加三 三的一个计算,最终得到是五嗯高阶函数。介绍完成之后,接下来我们讲了讲两个那个呃, python 内置的两个高阶函数 map 和 reduce, 其中 map 在要求的过程中呢,它需要求两两个参数,第一个参数是一个函数, 而第二个嗯参数呢是一个 interry 宝,那就是说一个迭代对象,而迭代对象我们像类似的嗯 taper, 还有我们以及嗯 date set 都是一个迭代对象。这时候我们通可以通过 map 进行一个嗯迭代, 也就循环便利的一个过程,而循环便利是把我们数据传递给这个防审函数进行一个计算过程。这时候我们最终这个 value 对象,这时候我们可以 打印出来,发现它是一个 map, 然后它不是一个类似的集合。我们如果我们想把我们这个 interreter 这个点击这项转换成一个类似类似的话,我们可以用类似的函数进行一个转化过程,最终打印出是这样的一个类似的集合。 接下来我们再看一下 reduce, reduce 它使用过程中呢,它要求第一个常说的函数必须有两个参数,也就是说我们,嗯,这个方式这样的函数必须有两个参数, x, y, 如果不只有一个参数,这是不打不符合要求之后会报错的。 而我们在计算过程中呢,是这时候我们相当于说把 function 在用 list value 的前两个值传入到 x y 里边,然后计算,计算完成之后得到这个值,他接下来会作为 x 值, x 参数以 以及三作为 y 的参数进行传递过来。这样一个迭代的计算过程, 最终我们可以发现我们得到这样的一个三六二八八零的这个一个值,嗯,好了,今天我们就学习到这。