当前位置: 首页 > 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)]

http://www.lryc.cn/news/14666.html

相关文章:

  • Centos7搭建hadoop3.3.4分布式集群
  • 骨传导耳机工作原理,骨传导耳机优缺点
  • IDEA高效插件和设置
  • Linux之网络流量监控工具ntopng YUM安装
  • 创建虚拟机,安装CentOS
  • ilasm 和 ildasm编译和反编译工具介绍使用教程
  • 代码随想录【Day20】| 654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树
  • C++空指针和野指针
  • LinkedList正确的遍历方式-附源码分析
  • 【蓦然回首忆Java·基础卷Ⅱ】
  • Mybatis源码分析系列之第二篇:Mybatis的数据存储对象
  • 防护设备检测实验室建设完整方案SICOLAB
  • Linux知识之主机状态
  • 是时候为您的银行机构选择构建一个知识库了!
  • 「TCG 规范解读」第7章 TPM工作组 TPM 总结
  • 一、Plugin Constructing the Boilerplate
  • 15、存储过程与函数
  • uniapp 原生安卓开发插件(module),以及android环境本地调试(二)
  • 【Java期末复习】《面向对象程序设计》练习库
  • 照片文件损坏能修复吗?
  • Git分布式版本控制工具
  • Python爬虫(8)selenium爬虫后数据,存入sqlit3实现增删改查
  • 最全Linux驱动开发全流程详细解析(持续更新)
  • 华为OD机试 - 乱序整数序列两数之和绝对值最小 | 机试题算法思路 【2023】
  • 网上插画教学哪家质量好,汇总5大插画培训班
  • 对云原生集群网络流量可观测性的一点思考
  • 借力英特尔® Smart Edge,灵雀云 ACP 5G 专网解决方案获得多维度优化加速
  • 【Pytorch项目实战】基于PaddlenHub的口罩检测与语音提示
  • EasyExcel 让Excel导入导出更简单
  • 华为OD机试 - 需要广播的服务器数量 | 机试题算法思路 【2023】