网站首页 > 技术文章 正文
转载说明:原创不易,未经授权,谢绝任何形式的转载
Python 提供了许多预定义的内置函数,最终用户只需调用它们即可使用。在本文中,您将了解 Python 的三个最强大的函数:map()、filter() 和 reduce()。这三个函数有助于以函数式方法进行编程(这些方法功能类似JS中的 map()、filter() 和 reduce())。
Map() 函数
map() 函数是 Python 中内置的高阶函数,它接收一个函数 f 和一个可迭代对象(如列表、元组等)作为输入,对该可迭代对象中的每一个元素执行函数 f,并返回一个由执行结果组成的新的可迭代对象。
语法:
map(function, iterable)
示例:让我们看下面的示例
items = [1, 2, 3, 4, 5]
add = []
for i in items:
add.append(i+i)
print(add)
输出:
[2, 4, 6, 8, 10]
使用 map() 后:
items = [1, 2, 3, 4, 5]
add = list(map(lambda x: x+x, items))
print(add)
延伸阅读
lambda 是 Python 中的一种特殊语法,用来定义一个匿名函数,也就是没有名字的函数。它可以接收任意多个参数,并返回单个表达式的结果。
上面的代码定义了一个列表 items,然后使用 map 函数将一个 lambda 函数作用于该列表中的每一个元素。
Reduce() 函数
reduce() 是 Python 中的一个内置函数,来自于 functools 模块。它接收一个函数 f 和一个可迭代对象(如列表、元组等)作为输入,并对该可迭代对象中的所有元素进行累积运算,得到一个单一的结果。
语法:
reduce(function, iterables)
示例:让我们看下面的示例
add=0
list = [1, 2, 3, 4]
for num in list:
add = add + num
print(add)
输出:
10
使用 reduce() 函数
from functools import reduce
add = reduce((lambda x, y: x + y), [1, 2, 3, 4])
print(add)
filter() 函数
filter() 是 Python 中的一个内置函数,它接收一个函数 f 和一个可迭代对象(如列表、元组等)作为输入,并通过一定的规则对该可迭代对象中的元素进行过滤,仅返回符合规则的元素。
语法:
filter (function, iterables)
示例:让我们看下面的示例
# 定义一个列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 使用 filter 函数,仅返回列表中的偶数
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# 输出结果
print(even_numbers)
# [2, 4, 6, 8, 10]
在这个案例中,我们定义了一个列表 numbers,然后使用 filter 函数对该列表中的元素进行过滤。
filter 函数需要一个函数作为输入,该函数接收一个参数 x,并返回一个布尔值。在这个案例中,我们使用了一个 lambda 函数,它判断参数是否为偶数:
lambda x: x % 2 == 0
最终,调用 filter 函数的结果是一个列表,该列表中只包含了列表 numbers 中符合过滤规则的元素,即所有的偶数。代码中的最后一行:
print(even_numbers)
将会输出这个结果:
[2, 4, 6, 8, 10]
因此,这段代码对列表 numbers 中的所有元素进行了一个过滤操作,最终得到了一个只包含偶数的列表。
filter 函数在数据处理、数据筛选等场景中非常有用。它可以帮助我们快速地找到符合特定要求的元素,从而使得后续的数据处理、分析更加方便快捷。
需要注意的是,filter 函数只接收一个可迭代对象作为输入,不支持对其他数据类型进行过滤,因此在使用 filter 函数时需要注意数据的类型。
结束
今天的小知识就分享到这里,你学会了吗?感谢你的阅读,如果你喜欢我的分享,别忘了点赞转发,让更多的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。
猜你喜欢
- 2024-11-24 赶快收藏!图灵前端图书学习路线图
- 2024-11-24 什么是BitMap?BitMap技术的原理和应用
- 2024-11-24 何时使用 Map 来代替普通的 JS 对象
- 2024-11-24 go语言深入Gin框架内幕(二)
- 2024-11-24 WeakMap和Map的区别,WeakMap原理,为什么能被 GC?
- 2024-11-24 2.7k star!MindMap 助你轻松绘制思维导图,高效工作必备!
- 2024-11-24 解密 JavaScript 中的数据结构:Map vs Object
- 2024-11-24 Vue短文:如何使 Map 和 Set 类型的数据具有响应性?
- 2024-11-24 前端最常用的25个正则表达式,代码效率提高 80%
- 2024-11-24 从0到1实现一个前端监控系统
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 601℃几个Oracle空值处理函数 oracle处理null值的函数
- 593℃Oracle分析函数之Lag和Lead()使用
- 581℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 578℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 573℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 566℃【数据统计分析】详解Oracle分组函数之CUBE
- 552℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 547℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)