day17:高阶函数:map、reduce、sorted、fliter、lambda
目录一、map二、reduce三、sorted四、filter五、lambda六、整合练习 一、map map(fn,lsd) fn: 可以是自己写的,也可以是系统自带的 lsd: 一个序列 功能:把lsd中每一个元素分别作用在fn上 例如:字符串列表变为int列表 """ map(fn,lsd) fn: 可以是自己写的,也可以是系统自带的 lsd: 一个序列 功能:把lsd中每一个元素分别作用在fn上 """ #比如变为int列表 L = ["1","2","3","4","5"] L1 = [] for var in L: L1.append(int(var)) print(L 在Python编程语言中,高阶函数是一类可以接受一个或多个函数作为参数的函数,它们在函数式编程中扮演着重要角色。今天我们将探讨五个重要的高阶函数:`map()`、`reduce()`、`sorted()`、`filter()`以及`lambda`表达式。 一、`map()`函数 `map()`函数接受一个函数`fn`和一个序列`lsd`作为参数,将`fn`函数依次应用到`lsd`中的每个元素上,并返回一个迭代器。如果需要,可以通过`list()`将其转换为列表。例如,将一个包含字符串的列表转换为整数列表: ```python L = ["1", "2", "3", "4", "5"] res = list(map(int, L)) print(res) # 输出:[1, 2, 3, 4, 5] ``` 除了内置函数,`fn`还可以是你自定义的函数,例如: ```python def convert(key): dict1 = {"1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6} return dict1[key] L = ["1", "2", "3", "4", "5"] res = list(map(convert, L)) print(res) # 输出:[1, 2, 3, 4, 5] ``` 二、`reduce()`函数 `reduce()`函数来自`functools`模块,它将一个函数`fn`和一个序列`lsd`作为输入,将序列的元素两两结合,通过`fn`函数不断运算,最终得到单一的结果。`fn`函数需要接受两个参数。例如,将一个列表元素相加: ```python from functools import reduce L = [1, 2, 3, 4, 5] res = reduce(lambda a, b: a + b, L) print(res) # 输出:15 ``` 三、`sorted()`函数 `sorted()`函数用于对列表进行排序,返回一个新的已排序的列表。与`list.sort()`方法不同,`sorted()`会返回一个新的列表,而`list.sort()`直接在原地排序。`sorted()`还可以接受一个`key`参数,指定排序规则。例如,按绝对值排序: ```python L = [3, 5, -856, 7645, -32, 1] res = sorted(L, key=abs) print(res) # 输出:[-32, 1, 3, 5, -856, 7645] ``` 四、`filter()`函数 `filter()`函数根据提供的函数`fn`过滤序列`lsd`,返回一个只包含使`fn`返回`True`的元素的迭代器。例如,过滤出偶数: ```python lsd = [1, 2, 3, 4, 5, 6, 7, 8, 9] res = list(filter(lambda x: x % 2 == 0, lsd)) print(res) # 输出:[2, 4, 6, 8] ``` 五、`lambda`表达式 `lambda`表达式是创建匿名函数的一种简洁方式,通常用于简单的、单行的函数定义。它的一般形式为`lambda 参数: 表达式`。例如,创建一个求平方的`lambda`函数: ```python square = lambda x: x ** 2 print(square(3)) # 输出:9 ``` 总结: 这些高阶函数在Python编程中非常实用,它们简化了代码,提高了代码的可读性和效率。`map()`用于对序列进行统一操作,`reduce()`用于将序列元素逐步合并为单个值,`sorted()`和`filter()`则分别用于排序和筛选序列,而`lambda`表达式则提供了创建简洁函数的能力。熟练掌握这些函数,能让你在编写Python代码时更加得心应手。



























- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 毕设&课设:智慧型报告厅——我的毕业设计项目.zip
- 毕设&课设:智慧校园之家长子系统.,计算机毕业设计,毕设,Java毕业设计,SpringBoot,SSM,小程序.zip
- 中国软件杯赛事中的计算机视觉前端框架
- 【自然语言处理】基于中文分词的文本相似度动态规划算法优化:高效准确的论文防抄袭系统设计与实现(论文复现含详细代码及解释)
- 这篇文章详细介绍了针对室内3D物体检测的主动学习框架,旨在解决室内场景下3D物体检测面临的独特挑战,包括样本少、类别多、类别不平衡严重以及场景类型和类内差异大的问题(论文复现含详细代码及解释)
- 【电力电子与控制工程】基于准PR+改进重复控制的光伏逆变器谐波抑制与动态响应优化:复合控制策略的MATLAB仿真及硬件实现(论文复现含详细代码及解释)
- 机器学习与深度学习 Python实现基于PSO-Transformer粒子群优化算法(PSO)优化Transformer编码器进行多特征分类预测的详细项目实例(含完整的程序,GUI设计和代码详解)
- 【神经网络同步与稳定性】几类比例时滞神经网络的同步性和稳定性研究:理论分析、MATLAB代码复现及应用示例(论文复现含详细代码及解释)
- 详细研究了交错并联Buck变换器的工作原理、性能优势及其仿真实现(论文复现含详细代码及解释)
- 相似性搜索及其应用进展
- 深度学习与计算机视觉:从入门到精通之路详解
- 电力电子交错并联双向Buck/Boost集成LLC谐振型三端口直流变换器设计与仿真:新能源微电网高效功率转换系统(论文复现含详细代码及解释)
- 电力电子交错并联型光伏储能双向DC-DC变换器研究:解决电流不均与提高系统稳定性(论文复现含详细代码及解释)
- 变化检测-基于全卷积孪生网络实现的变化检测算法-附项目源码-优质项目源码.zip
- 基于计算机视觉技术的辅助驾驶软件杯项目
- 2019 年度广东工业大学计算机视觉课程作业



评论0