中关村在线

软件

Python三大高阶函数详解

Python内置了map、filter和reduce三个函数,能简化数据处理流程,提升编程效率与代码可读性。

1、 我们先来了解Python中的`map()`函数,它能将指定函数依次作用于序列中的每个元素,并返回一个映射结果的迭代器。下面具体看看它的基本用法和结构。

2、 map函数返回一个列表对象。

3、 我们用它来写一个实际的小例子。

4、 使用lambda表达式定义平方运算,再通过map函数将该运算应用到列表l3的每个元素上,最终输出l3中所有元素的平方值。

5、 再用map实现一个示例

6、 使用lambda函数实现两个列表对应元素相加,代码为:`l3 = l5 = print(list(map(lambda a, b: a + b, l3, l5)))`。该语句将两列表同位置元素逐个相加并输出结果。

7、 代码见图一,运行结果见图二。

8、 接下来介绍Python的filter函数,顾名思义用于筛选。它能依据指定条件,从序列中剔除不满足要求的元素,仅保留符合条件的项。

9、 我们来观察一下filter函数的构造,所示。

10、 我们利用filter函数对列表进行筛选,提取其中所有偶数并输出结果。

11、 定义一个判断偶数的函数,通过取模运算检查数字是否能被2整除。给定一个待检测的数字列表,利用该函数对列表进行筛选,仅保留其中的偶数元素。筛选过程采用内置的filter函数实现,将偶数判断函数与原始列表作为参数传入。最终输出经筛选后的新列表,其中只包含原列表中所有满足偶数条件的数值。整个操作简洁高效,适用于各类数值型数据的奇偶过滤需求。

12、 最后介绍Python的reduce函数,它能对序列中的元素依次进行累积运算。其基本结构所示,需传入一个二元函数和一个可迭代对象,最终返回单一结果。

13、 接下来,我们将用Python的reduce函数进行实际操作。

14、 该代码定义了一个乘法函数 `ride`,并利用 `reduce` 函数对列表 `l6` 中的所有元素进行连乘运算。计算结果等价于将数字 5、6、7、8、166、123、66、67 和 77 依次相乘,最终得到的积为 11679706906560。整个过程实现了对列表中全部数值的累积乘法操作,体现了函数式编程中 `reduce` 的典型应用方式。

15、 详情如下

16、 当然,也可用lambda表达式直接定义reduce的累积操作。

17、 一行代码即可解决

18、 该表达式计算列表中所有数字依次相减的结果,即5减6减7减8减166减123减66减67减77,最终结果为-515。

19、 详见下图

展开全文
人赞过该文 赞
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具