python中的map、filter、reduce函数

第22课 详细讲解python中的map、filter、reduce函数 map函数是Python内置的一个高阶函数,它接收两个参数,第一个参数是一个函数(这个函数可以是普通的自定义函数、内置函数或者匿名函数,即lambda表达式),第二个参数是一个可迭代对象(比如列表、元组、字符串等)。map函数的作用是将传入的函数依次应用到可迭代对象的每个元素上,并返回一个包含所有结果的迭代器(在Python 3中返回迭代器,如果要得到像列表这样具体的数据结构,需要手动进行转换;在Python 2中返回的是列表)。filter。 阅读详情
三个函数比较类似,都是应用于序列的内置函数。常见的序列包括list、tuple、str。

1.map函数
map函数会根据提供的函数对指定序列做映射。
map函数的定义:
map(function, sequence[, sequence, ...]) -> list
通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合。
function可以理解为是一个一对一或多对一函数,map的作用是以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的list。
比如要对一个序列中的每个元素进行平方运算:
map(lambda x: x ** 2, [1, 2, 3, 4, 5])
返回结果为:
[1, 4, 9, 16, 25]
在参数存在多个序列时,会依次以每个序列中相同位置的元素做参数调用function函数。
比如要对两个序列中的元素依次求和。
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8,10])
map返回的list中第一个元素为,参数序列1的第一个元素加参数序列2中的第一个元素(1 + 2),
list中的第二个元素为,参数序列1中的第二个元素加参数序列2中的第二个元素(3 + 4),
依次类推,最后的返回结果为:
[3, 7, 11, 15, 19]
要注意function函数的参数数量,要和map中提供的集合数量相匹配。
如果集合长度不相等,会以最小长度对所有集合进行截取。
当函数为None时,操作和zip相似:
map(None, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
返回结果为:
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]





2.filter函数
filter函数会对指定序列执行过滤操作。
filter函数的定义:
filter(function or None, sequence) -> list, tuple, orstring
function是一个谓词函数,接受一个参数,返回布尔值True或False。
filter函数会对序列参数sequence中的每个元素调用function函数,最后返回的结果包含调用结果为True的元素。
返回值的类型和参数sequence的类型相同
比如返回序列中的所有偶数:
def is_even(x):
return x & 1 != 0

filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
返回结果为:
[1, 3, 5, 7, 9]
如果function参数为None,返回结果和sequence参数相同。





3.reduce函数
reduce函数,reduce函数会对参数序列中元素进行累积。
reduce函数的定义:
reduce(function, sequence[, initial]) -> value
function参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。
第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
结果为21(  (((((1+2)+3)+4)+5)+6) )
reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
结果为20

注意function函数不能为None。

15.Python中的map, filter, reduce函数 《Python编程的术与道:Python语言进阶》视频课程 《Python编程的术与道:Python语言进阶》视频课程链接:https://edu.youkuaiyun.com/course/detail/28618 map, filter, reduce函数 一等对象 在 Python 中,函数是一等对象(first-class object)。“一等对象”定义为满足下述条件的程序实体: 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传给函数 能作为函数的返回结果 在 Python 中,整数、字符串和字 阅读详情

相关推荐

【Python函数式编程③】——Python高阶函数 map、reduce、filter

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。

Python全栈系列 3649

python内置函数 map与filter

filter函数 描述 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。 语法 以下是 filter() 方法的语法: filter(function, iterable) 参数 ...

小Y的博客 603

Graylog日志系统实战:高效接收与解析交换机日志

本文提供Graylog日志系统的实战部署与配置指南,重点讲解如何高效接收与解析交换机日志。通过Docker快速部署,配置Syslog输入,并指导华为、华三等主流交换机将日志发送至Graylog。文章还介绍了使用提取器解析日志字段、创建数据流进行分类,以及设置报警规则,实现从被动排查到主动预警的运维转变,帮助网络工程师构建集中、智能的日志管理系统。

weixin_29284885的博客 540

Python高阶函数——map()和filter()

map()作用一个函数。filter()用一个函数过滤

XerCis的博客 1269

华为eNSP与VMware虚拟机联动实战:从零搭建仿真网络环境

本文详细介绍了如何从零开始搭建华为eNSP与VMware虚拟机的联动仿真网络环境。通过环境准备、网络适配器配置、eNSP与VMware网络集成、安全策略与NAT配置等步骤,帮助读者掌握构建企业级网络实验场景的关键技术。这种组合特别适合网络工程师进阶训练和华为认证考试准备,实现低成本、高灵活性的网络仿真实验。

weixin_30415113的博客 503

ENVI遥感数字图像处理方法(一)

文章目录1.查看图像的空间分布特征(一)生成灰度图像(二)生成假彩色图像(三)连接不同视图的影像2.查看图像的像元灰度值3.统计并查看图像直方图 1.查看图像的空间分布特征 在打开一幅遥感影像时,有两个文件,我们要选择数据文件来打开。 打开过后,点击Data Manager,查看该影像的波段 该影像共有6个波段 (一)生成灰度图像 步骤如下: (二)生成假彩色图像 先生成一个一般的假彩色图像: 再生成一个标准假彩色图像,将其存放在一个新的视图中: 标准假彩色图像波段构成为:近红外、红光波段、绿

江昊东的博客 5万+

filter数组去重,用filter()筛选出素数

filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。 和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。 例如,在一个Array中,删掉偶数,只保留奇数,可以这么写: var arr = [1, 2, 4, 5, 6, ...

qq_39349116的博客 894

基于MATLAB/Simulink与WSL2的ROS2实时联合仿真实践

本文详细介绍了基于MATLAB/Simulink与WSL2的ROS2实时联合仿真实践。通过环境配置、PX4仿真环境搭建、自定义消息生成、Simulink通信实现及实时优化等步骤,提供了完整的无人机位置控制案例,帮助开发者实现高精度的实时联合仿真。

red88的博客 203

python内置函数——map()、filter()

目录map()filter()reduce() map() 描述 虽然文章的标题说是内置函数,但map()实际上市python自定义的类,使用语法如下: map(function, iterable, ...) map() 会根据提供的函数对指定序列做映射,即 以参数序列中的每一个元素为形参调用 function 函数,返回包含每次 function 函数返回值的新列表。 参数: fu...

dekiang 291

2021-08-20

通过QQ号获取绑定的手机号 导语 偶有奇想,我们可以通过手机号来搜索获取其对应的QQ号,那么,反过来呢? 一.缩小范围 由于手机号属于隐私数据,腾讯QQ并没有直接给出通过QQ号查找对应手机号的接口。 国内的手机号有十一位数字,从数学的角度上来说,包含了1011种可能。如果遍历这1011个数据,通过QQ中手机号查找QQ号的接口来寻找,未免太过费时费力,根据网上查到的资料,同一个QQ号,在十分钟内只能进行30次查询(未验证)。因此,直接遍历的方法不现实。 在这10^13个数据中,包含着大量的可去除的无用数据。我

m0_56063822的博客 4714

Proteus仿真实战:用AT89C51+L298N搭建直流电机PID调速系统(附完整工程文件)

本文详细介绍了使用Proteus仿真平台结合AT89C51单片机和L298N驱动模块搭建直流电机PID闭环调速系统的全过程。从硬件选型、电路连接到PID算法实现与参数整定,提供了完整的开发指南和工程文件,帮助读者快速掌握闭环调速系统的设计与调试技巧。

weixin_28724661的博客 448

【python养成】:案例(判断素数、统计字符串中的大写字母、小写字母、数字、其他字符的个数、整数之和、模拟内置函数)

【python养成】:案例(判断素数、统计字符串中的大写字母、小写字母、数字、其他字符的个数、整数之和、模拟内置函数)

嵌入式up 4250

86、高斯过程:学习、应用与自动相关性确定

本文介绍了高斯过程回归的基本原理及其在实际应用中的关键技术,重点探讨了通过最大化对数似然函数来学习模型超参数的方法,并详细阐述了自动相关性确定(ARD)技术如何用于评估输入变量的重要性。文章涵盖了从协方差函数定义、梯度计算到优化算法的应用流程,并通过流程图和表格形式总结了核心步骤与公式。此外,还讨论了贝叶斯处理方式及异方差问题的建模策略,展示了高斯过程在复杂数据建模中的灵活性与强大能力。

android的专栏 114

【python】Python 高阶函数map、reduce、filter、sorted

高阶函数(Higher-Order Function)是指能够接收函数作为参数,或者将函数作为返回值的函数。Python 内置了多种高阶函数,它们为我们提供了编写简洁代码的能力。lambda高阶函数为我们提供了一种优雅的方式来处理可迭代对象。通过合理运用mapreducefilter和sorted,我们可以编写出更加简洁和高效的 Python 代码。lambda表达式的配合使用,更是让代码显得简洁且富有表现力。

longforone的博客 1923

Vue - 解决 Property or method “__v_isRef“ is not defined on the instance but referenced(浏览器控制台报错,代码没错)

vue,vue2控制台报错,vue报错Propertyormethod"__v_isRef"isnotdefinedontheinstancebutreferenced,vue代码没问题,但是报错Propertyormethod"__v_isRef"isnotdefinedontheinstancebutreferenced,vue2如何解决报错,vue怎么解决报错问题,vue2Propertyormethod"__v_isRef"isnotdefi

🏆 前端领域优质创作者 4501

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python中filter()函数、map()函数与reduce()函数

filter、map 和 reduce 函数在 Python 中各司其职,却又紧密相连。filter 函数负责筛选出符合特定条件的数据,map 函数对数据进行转换操作,而 reduce 函数则将数据聚合为一个单一的值。它们可以单独使用,发挥各自的优势;也可以协同工作,先筛选、再转换、最后聚合,完成复杂的数据处理流程。

橙色小博的博客,励志在人工智能领域发光发热! 1373

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python——map、reduce、filter函数

map map(function, iterable, ...) 参数: function 函数,常用lambda表达式 iterable 一个或多个序列 函数功能: 对序列iterable中的每一个元素调用function,将结果组成新迭代器对象返回 实例: >>> map(lambda x: x ** 2, range(6)) [0, 1, 4, 9, 16, 25] # 提供了两个列表,对相同位置的列表数据进行相加 >>> list(map(la

无风而起的博客 250

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python filter map reduce_Python之filter、map、reduce函数

简介三函数:高阶函数:一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数。filter、map、reduce三个函数都是高阶函数,且语法都一致:filter/map/reduce(func,seq),第一个参数为函数,第二个参数为可迭代对象。下面分别介绍三个函数的功能:•filterfilter(func,seq)为过滤函数,此函数的执行原理为将func作用于seq中的每一个元素,返回符合...

weixin_39859052的博客 202

Python3中一些高阶函数map、reduce、filter详解及示例

在编程语言中,高阶函数指的是接受函数作为输入或输出的函数。 map概述 python中的map()函数是一个内置的高阶函数,一般用法是map(function, iterable)。需要传入一个函数,这个函数可以是内置的,也可以是自己定义,也可以是匿名函数即lambda。第二个参数是一个可迭代对象,如列表、字典字符串等。map函数返回的是一个map对象,也是一个可迭代对象,可以利用for循环迭...

若数的博客 1630

Python3.4中filter函数,map函数和reduce函数

filter函数: filter()为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中 >>> def f1(x): if x > 20: return True else: return False >>> l1 = [ 1, 2, 3, 42, 67, 16 ] >>> filter( f1, l1) >>> l2 =

我的新博客 5万+

python filter map reduce_Python内置函数之filter map reduce介绍

Python内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车。1. filter函数的功能相当于过滤器。调用一个布尔函数bool_func来迭代遍历每个seq中的元素;返回一个使bool_seq返回值为true的元素的序列。>>>...

weixin_39880318的博客 177

Python 函数式编程进阶:map、filter、reduce

在函数式编程中,map、filter、reduce 是三种基本的高阶函数,它们在处理数据集合时起着至关重要的作用。这些函数有助于执行列表(或数组)的转换和操作,而不需要改变原始数据集合。它们通常用于简化算法,使得代码更加简洁、易于理解和维护。

二等碗 1926

Python 高阶函数的使用之 map、filter 和 reduce

在 Python 中,高阶函数(Higher-Order Functions) 是指能够接受一个或多个函数作为参数,或者返回一个函数的函数。高阶函数能够让代码更加简洁、优雅,提高可读性和开发效率。Python 提供了多个常用的高阶函数,其中 `map()`、`filter()` 和 `reduce()` 是三种非常重要的函数式编程工具,分别用于映射、过滤和归约操作。本文将详细介绍它们的用法,并结合实际案例来展示如何利用这些函数简化代码。

945

Python高级函数Counter、defaultdict、map、reduce、filter使用

在这里为大家介绍一下Python非常实用的Counter、defaultdict、map、reduce、filter、groupby的函数使用,提高大家在平时实用Python的效率计数器函数 Counter带默认值的字典 defaultdictmap函数reduce函数filter函数 计数器函数 Counter 相信在大家在平时使用python这门语言的时候都会遇见需要计算出一个字符在列表或者字典里面出现的次数吧! 在没遇见这个函数前相信大家都是这样的(计算一个列表里字符a出现的次数): 但是!现在

伍曾雨阳的博客 6万+

一文弄懂Python中的Map、Filter和Reduce函数

本文从高级函数和Lambda函数入手,先后介绍了Map,Filter和Reduce三个高级函数的用法,并给出了相应的代码示例。您学废了嘛?

sgzqc的专栏 1030

python map、filter、reduce函数

在说明map、reduce函数之前,先引入匿名函数的概念 python lambda匿名函数 使用lambda表达式可以简化函数为匿名函数 def add(a,b): print(a+b) func = lambda a,b:a+b add(10,5) # 15 print('func',func(10,5)) # func 15 高阶函数的概念 map、reduce、f...

huotong 430
上一篇: Python 多重继承mro
下一篇: 解析JVM线程同步机制
LiHangTong
博客等级 码龄16年 11粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值