当前位置: 首页 > news >正文

python filtermapreducezip

一、filter 过滤

filter 过滤, 从可迭代对象中,筛选出满足条件的元素,再将这些满足条件的元素,组成一个新的可迭代对象。

方式一:filter(过滤方法,可迭代对象)

举例:将一个list中的偶数,全部筛选出来

def filter_int(x:int):if x % 2 == 0:return Truereturn Falselist = [1,2,3,4,5,6]if __name__ == '__main__':new_filter = filter(filter_int,list) # 得到的是一个filter对象,filter对象是可迭代对象for i in new_filter:print(i)# list1 = list(new_filter)# print(list1) # 将可迭代对象,转成list

new_filter = filter(filter_int,list) # 得到的是一个filter对象,filter对象是可迭代对象

方式二:filter 使用lambda 表达式

filter(lambda 变量名称: 筛选条件,可迭代对象)

list = [1,2,3,4,5,6]if __name__ == '__main__':new_filter = filter(lambda x: x%2==0,list)for i in new_filter:print(i)

new_filter = filter(lambda x: x%2==0,list) # 得到的是一个filter对象,filter对象是可迭代对象

二、map 映射

2.1 处理一个可迭代对象

map(lambda 变量:处理逻辑,可迭代对象)

map依次,对可迭代对象里的元素做处理。

map_object=map(lambda x:x*2+2,[1,2,3,4])
for i in map_object:print(i)

打印结果:

4
6
8
10

map 对list[1,2,3,4] 里的每一个元素,做计算,然后得到一个可迭代对象。map 对象

2.2 处理多个可迭代对象

依次将可迭代对象A第一个元素,与可迭代对象B 第一个元素做处理

可迭代对象A第二个元素,与可迭代对象B 第二个元素做处理

。。。。

最后得到一个新的可迭代对象 map对象

map(lambda x,y: x+y,[1,2,3],[10,20,30])

map_object= map(lambda x,y:x+y,[1,2,3],[10,20,30])
for i in map_object:print(i)

打印结果:

11
22
33

三、reduce

使用reduce ,需要先引入包

from functools import reduce

reduce() 函数语法:

reduce(function, iterable[, initializer])

参数

  • function -- 函数,有两个参数
  • iterable -- 可迭代对象
  • initializer -- 可选,初始参数

作用:

1、 将可迭代对象中的,第一个元素,与第二个元素传入函数做处理,得到的结果作为变量,与第三个元素传入函数再做处理,依次处理

举个例子

累加的例子,list=[1,2,3,4,5]

先处理1+2,得到的结果再与3做相加

from functools import reducelist = [1, 2, 3, 4, 5]def xiangjia(x, y):return x + yif __name__ == '__main__':reduce_object = reduce(xiangjia, list)print(reduce_object)
zip([iterable, ...])

打印结果:

15

四、zip

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

zip 语法:

zip([iterable, ...])

参数说明:

  • iterable -- 一个或多个迭代器;

举例 

"abcdef",[1,2,3,4,5],[22,33,44,55] -------->[('a',1,22),('b',2,33),('c','3','44')]

str1 = "abcdef"
list1 = [1,2,3,4,5]
list2 = [22,33,44,55]if __name__ == '__main__':print(zip(str1,list1,list2))
<zip object at 0x7fc5201d8e10>

zip函数,处理,得到一个可迭代对象,zip对象。

使用list ,将zip对象转为list

print(list(zip(str1,list1,list2)))

输出结果:

[('a', 1, 22), ('b', 2, 33), ('c', 3, 44), ('d', 4, 55)]

相关文章:

python filtermapreducezip

一、filter 过滤 filter 过滤&#xff0c; 从可迭代对象中&#xff0c;筛选出满足条件的元素&#xff0c;再将这些满足条件的元素&#xff0c;组成一个新的可迭代对象。 方式一&#xff1a;filter(过滤方法&#xff0c;可迭代对象&#xff09; 举例&#xff1a;将一个list中…...

Centos7搭建hadoop3.3.4分布式集群

文章目录1、背景2、集群规划2.1 hdfs集群规划2.2 yarn集群规划3、集群搭建步骤3.1 安装JDK3.2 修改主机名和host映射3.3 配置时间同步3.4 关闭防火墙3.5 配置ssh免密登录3.5.1 新建hadoop部署用户3.5.2 配置hadoopdeploy用户到任意一台机器都免密登录3.7 配置hadoop3.7.1 创建目…...

骨传导耳机工作原理,骨传导耳机优缺点

骨传导耳机虽说最近是十分火爆的一款单品&#xff0c;但还是有很多人对骨传导耳机不是很了解&#xff0c;骨传导耳机更多使用场景还是在户外运动使用&#xff0c;骨传导耳机对于长时间使用耳机的人来说十分友好&#xff0c;这主要还是得益于骨传导耳机传输声音的特殊性。 下面我…...

IDEA高效插件和设置

安装好Intellij idea之后&#xff0c;进行如下的初始化操作&#xff0c;工作效率提升十倍。 一. 安装插件 1. Codota 代码智能提示插件 只要打出首字母就能联想出一整条语句&#xff0c;这也太智能了&#xff0c;还显示了每条语句使用频率。 原因是它学习了我的项目代码&…...

Linux之网络流量监控工具ntopng YUM安装

一、ntopng简介 Ntop是一种监控网络流量工具&#xff0c;用ntop显示网络的使用情况比其他一些网络管理软件更加直观、详细。Ntop甚至可以列出每个节点计算机的网络带宽利用率。他是一个灵活的、功能齐全的&#xff0c;用来监控和解决局域网问题的工具&#xff1b;尤其当ntop与n…...

创建虚拟机,安装CentOS

在VMware上面创建虚拟机 文件->新建虚拟机 选定 自定义的高级&#xff0c;下一步 下一步 检查选定稍后安装操作系统 下一步 选择Linux&#xff0c;CentOS 7 64位 创建虚拟机名称&#xff0c;以及在存放该虚拟机的位置 选择处理器的数量和每个处理器的内核数量 …...

ilasm 和 ildasm编译和反编译工具介绍使用教程

目录前言一、使用 ildasm 反编译 dll 文件二、使用 ilasm 将il文件编译成 dll 或 exe 文件前言 文本讲述怎么通过 ildasm 工具将 dll 文件进行反编译为 il 文件&#xff0c;修改 il 文件后再如何通过 ilasm 工具将 il 文件反编译成 dll 或 exe 文件。 ildasm工具&#xff1a;…...

代码随想录【Day20】| 654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树

654. 最大二叉树 题目链接 题目描述&#xff1a; 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最…...

C++空指针和野指针

空指针&#xff1a;指针被赋值为空 例如&#xff1a; int* p nullptr;int* p NULL; 空指针指向的地址是00000000&#xff0c;但空指针不可以解引用 野指针&#xff1a;指针指向了不可控的位置 例如&#xff1a; 未初始化 int* p; //野指针 越界访问 int intArr[5]{0, 1, …...

LinkedList正确的遍历方式-附源码分析

1.引子 记得之前面试过一个同学&#xff0c;有这么一个题目&#xff1a; LinkedList<String> list new LinkedList<>();for (int i 0; i < 1000; i) {list.add(i "");}请根据上面的代码&#xff0c;请选择比较恰当的方式遍历这个集合&#xff0c;并…...

【蓦然回首忆Java·基础卷Ⅱ】

文章目录对象内存解析方法的参数传递机制关键字&#xff1a;package、importpackage(包)JDK中主要的包介绍import(导入)JavaBeanUML类图继承的一些细节封装性中的4种权限修饰关键字&#xff1a;supersuper的理解super的使用场景子类中调用父类被重写的方法子类中调用父类中同名…...

Mybatis源码分析系列之第二篇:Mybatis的数据存储对象

前言&#xff1a;SQLSession是对JDBC的封装 一&#xff1a;SQLSession和JDBC的对照说明 左边是我们的客户端程序&#xff0c;右边是我们的MySQL数据仓&#xff0c;或者叫MySQL实例 Mybatis是对JDBC的封装&#xff0c;将JDBC封装成了一个核心的SQLSession对象 JDBC当中的核心对…...

防护设备检测实验室建设完整方案SICOLAB

防护设备检测实验室建造布局方案SICOLAB一、防护设备检测实验室通常需要划分为几个功能区域&#xff0c;包括&#xff1a;1、样品准备区&#xff1a;用于样品的接收、处理、准备等工作&#xff0c;通常包括样品接收台、洗手池、样品切割机等设备。2、实验操作区&#xff1a;用于…...

Linux知识之主机状态

1、查看系统资源占用 •可以通过top命令查看CPU、内存使用情况&#xff0c;类似Windows的任务管理器默认每5秒刷新一次&#xff0c;语法&#xff1a;直接输入top即可&#xff0c;按q或ctrl c退出 2、 top命令内容详解 •第一行&#xff1a;top&#xff1a;命令名称&#xff0…...

是时候为您的银行机构选择构建一个知识库了!

知识管理和自助服务客户支持在银行业至关重要。选择正确的知识库对于帮助客户和在内部共享信息同样重要。繁重的法规和合规性需求意味着银行必须在他们选择的知识库类型上投入大量思考。许多银行知识库已经过时&#xff0c;无法为客户提供成功使用您的产品和服务所需的信息。在…...

「TCG 规范解读」第7章 TPM工作组 TPM 总结

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…...

一、Plugin Constructing the Boilerplate

构建样板文件 在本章中&#xff0c;你将学习如何为一个新插件构建最少的代码。从起点开始&#xff0c;您将看到如何获取GStreamer模板源代码。然后&#xff0c;您将学习如何使用一些基本工具来复制和修改模板插件&#xff0c;以创建一个新的插件。如果您遵循这里的示例&#x…...

15、存储过程与函数

文章目录1 存储过程概述1.1 理解1.2 分类2 创建存储过程2.1 语法分析2.2 代码举例3 调用存储过程3.1 调用格式3.2 代码举例3.3 如何调试4 存储函数的使用4.1 语法分析4.2 调用存储函数4.3 代码举例4.4 对比存储函数和存储过程5 存储过程和函数的查看、修改、删除5.1 查看5.2 修…...

uniapp 原生安卓开发插件(module),以及android环境本地调试(二)

uniapp 原生安卓开发插件&#xff08;module&#xff09;&#xff0c;以及android环境本地调试&#xff08;一&#xff09; 1、前景 承接上一篇文章&#xff0c;由于uniapp每天只有限定的打包次数&#xff0c;所以每次插件调试都打包成为基座&#xff0c;这个不太方便&#x…...

【Java期末复习】《面向对象程序设计》练习库

目录 一、单选题 二、填空题 三、程序填空题 1、 super使用--有如下父类和子类的定义&#xff0c;根据要求填写代码 2、简单加法计算器的实现 3、House类 4、矩形类 5、创建一个Box类&#xff0c;求其体积 四、函数题 6-1 求圆面积自定义异常类 6-2 判断一个数列是…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...