python高阶函数:zip()

概述与基本用法

zip() 是 Python 内置函数之一,用于将多个可迭代对象打包成一个元组序列,然后返回一个迭代器。它可以接受任意数量的可迭代对象作为参数,并将它们的元素按顺序一一对应地打包成元组。

以下是 zip() 函数的基本用法:

"""
zip 将一个可迭代对象打包成一个元组序列
"""
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
print(list(zipped))  # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]"""
zip 将一个可迭代对象打包成一个元组序列
如果可迭代对象的长度不同,zip() 函数只会打包相同位置的元素,而忽略其余的元素。
"""
list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd']
zipped = zip(list1, list2)
print(zipped)  # 输出:<zip object at 0x0000029C71291F08>
print(zipped.__next__())  # 输出:(1, 'a')
# print(list(zipped))  # 输出:[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

在上面的示例中,使用 zip() 函数将列表 list1list2 中的元素一一对应地打包成了元组序列,并将其转换为列表输出。

需要注意的是,如果可迭代对象的长度不同,zip() 函数只会打包相同位置的元素,而忽略其余的元素。

高级用法

除了以上的基本用法,zip() 函数还有一些高级用法,例如:

1.解压缩序列


"""
解压缩序列
"""
pairs = [(1, 'a'), (2, 'b'), (3, 'c')]
numbers, letters = zip(*pairs)
print(numbers) # 输出:(1, 2, 3)
print(letters) # 输出:('a', 'b', 'c')

在上面的示例中,使用 * 运算符将元组列表 pairs 解压缩成两个元组 numbersletters,分别包含了 pairs 中的数字和字母。

"""
使用场景
"""
data = [((1, 2, 3, 0, 0, 0), 'apple'), ((1, 2, 3, 0, 0, 0), 'orange'), ((1, 2, 3, 0, 0, 0), 'pear')]
features, labels = zip(*data)
print(features)  # 输出:(1, 2, 3)
print(labels)  # 输出:('a', 'b', 'c')

2.生成字典

"""
生成字典
"""
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
print(dictionary) # 输出:{'a': 1, 'b': 2, 'c': 3}

在上面的示例中,使用 zip() 函数将列表 keysvalues 中的元素一一对应地打包成元组序列,并将其转换为字典输出,如上截图种dict()对象中可接收二元组的初始化参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端】vue3树形组件使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、树形组件简介二、树形组件使用三、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人学习使用vue前端工具&#xff0c;本文主要介…

iOS - 多线程-GCD-队列组

文章目录 iOS - 多线程-GCD-队列组1. 队列组1.1 基本使用步骤 iOS - 多线程-GCD-队列组 开发过程中&#xff0c;有时候想实现这样的效果 多个任务并发执行所有任务执行完成后&#xff0c;进行下一步处理&#xff08;比如回到主线程刷新UI&#xff09; 1. 队列组 可以使用GC…

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动 解决步骤&#xff1a; 1.去以下的目录中删掉.npmrc文件&#xff08;只在C:\User.npmrc&#xff09; 2.清除缓存&#xff0c;使用npm cache verify 不要用npm cache clean --force&#xff0c;容易出现npm WAR…

tsconfig.json 常用属性配置和注释

下面是一个详细的 tsconfig.json 文件示例&#xff0c;其中包含了许多常用的配置选项。这个配置适用于一个使用 TypeScript 进行前端和后端开发的通用项目。 {"compilerOptions": {"target": "es6", // 指定 ECMAScri…

大文件的分片上传和断点上传

一、大文件的分片上传 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Chunked File Upload</title> </head> <body><input type"file" id"fileInput">…

onlyoffice 插件执行后如何将消息返回给页面进行处理返回消息

使用免费的onlyoffice&#xff0c;前端操作插件是困难的&#xff0c;但是虽然是困难的&#xff0c;也是可以解决的&#xff0c;猜想这块内容是收费部分给封装起来了&#xff0c;既然要用免费的&#xff0c;那就要自己实现。 使用方法docEditor.serviceCommand(cmd,param); 可以…

【C++】:构造函数和析构函数

目录 前言一&#xff0c;构造函数1.1 什么是构造函数1.2 构造函数的特性1.3 总结 二&#xff0c;析构函数2.1 什么是析构函数2.2 析构函数的特性2.3 总结 前言 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何…

机器学习学 - 监督学习 - 多项式回归与决策树回归

机器学习学习笔记 - 监督学习 - 多项式回归与决策树回归 一、多项式回归 多项式回归是线性回归的一种扩展&#xff0c;用于处理样本特征与样本值之间存在非线性关系的情况。当数据之间的关系并非简单的线性关系时&#xff0c;线性回归可能无法得到很好的拟合效果。此时&#…

深度学习中的子空间、线性变换和矩阵概念应用

1.表示子空间 在深度学习中&#xff0c;“不同的表示子空间”通常是指模型通过不同的参数&#xff08;例如权重矩阵&#xff09;将输入数据映射到不同的高维空间&#xff0c;这些空间被称为表示子空间。每个子空间都能够捕获输入数据中不同的特征或模式。以下是一些详细解释&am…

Spring(SSM框架)

目录 一、核心体系 二、IOC和AOP 1.控制反转&#xff08;IoC&#xff09; 2.面向切面编程&#xff08;AOP&#xff09; 三、整合持久层 1. JDBC模板&#xff08;JdbcTemplate&#xff09; 2. JPA与Hibernate 3. MyBatis 4. 事务管理 5. 数据源配置 6. 整合其他ORM框…

新手Pytorch入门笔记-transforms.Compose()

我使用的图片是上图&#xff0c;直接下载即可 transforms.Compose 是PyTorch中的一个实用工具&#xff0c;用于创建一个包含多个数据变换操作的变换对象。这些变换操作通常用于数据预处理&#xff0c;例如图像数据的缩放、裁剪、旋转等。使用transforms.Compose 可以将多个数据…

广工电工与电子技术实验报告-8路彩灯循环控制电路

实验代码 module LED_water (clk,led); input clk; output [7:0] led; reg [7:0] led; integer p; reg clk_1Hz; reg [7:0] current_state, next_state; always (posedge clk) begin if(p25000000-1)begin …

银行卡四要素API接口的验证流程

银行卡验证作为一种关键的安全机制&#xff0c;其运作原理是基于银联的实时数据库&#xff0c;通过将用户在交易过程中提供的银行卡元素信息&#xff08;如卡号、姓名、身份证号码以及手机号码等&#xff09;安全传输至发卡银行进行严谨核验。这一过程对于商家来说至关重要&…

「笔试刷题」:腐烂的苹果

一、题目 描述 给定一个 &#x1d45b;&#x1d45a; nm 的网格&#xff0c;其中每个单元格中可能有三种值中的一个 0 , 1 , 2。 其中 0 表示这个格子为空、1 表示这个格子有一个完好的苹果&#xff0c;2 表示这个格子有一个腐烂的苹果。 腐烂的苹果每分钟会向上下左右四个…

接口测试和Mock学习路线(上)

一、接口测试和Mock学习路线-第一阶段&#xff1a; 掌握接口测试的知识体系与学习路线掌握面试常见知识点之 HTTP 协议掌握常用接口测试工具 Postman掌握常用抓包工具 Charles 与 Fiddler结合知名产品实现 mock 测试与接口测试实战练习 1.接口协议&#xff1a; 需要先了解 O…

微服务组件-反向代理(Nginx)

微服务组件-反向代理(Nginx) Nginx 基本概念 1、nginx是什么&#xff1f; ①、Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器同时也提供了IMAP/POP3/SMTP服务。它是一款轻量级的Web服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&a…

Java | Leetcode Java题解之第50题Pow(x,n)

题目&#xff1a; 题解&#xff1a; class Solution {public double myPow(double x, int n) {long N n;return N > 0 ? quickMul(x, N) : 1.0 / quickMul(x, -N);}public double quickMul(double x, long N) {if (N 0) {return 1.0;}double y quickMul(x, N / 2);retu…

【打工日常】云原生之搭建个人文件分享的轻量小工具

一、Pingvin Share介绍1.Pingvin Share简介它是一个专注于文件分享的高颜值轻量小工具。2.Pingvin Share功能创建文件共享,你可以通过链接访问这些文件支持自定义链接的后缀部署非常简单(Docker部署2分钟搞定)没有文件大小的限制(只要你的硬盘够大)支持设置共享的到期时间…

【UE5】蓝图通信方式

目录 1、直接通信 2、getAllActorsOfClass 3、getAllActorsOfClassWithTag 4、通过射线检测 5、接口 6、事件分发器 7、SpawnActor 8、调用控制台命令 9、关卡蓝图中直接调用 创建两个Actor蓝图 1、直接通信 场景中 2、getAllActorsOfClass 3、getAllActorsOfClassWit…

SET NOCOUNT ON/OFF 参数

--当 SET NOCOUNT 为 ON 时&#xff0c;不返回计数。 --当 SET NOCOUNT 为 OFF 时&#xff0c;返回计数。 --即使当 SET NOCOUNT 为 ON 时&#xff0c;也更新 ROWCOUNT 函数。 SET NOCOUNT ON go select * from [dbo].[t_book] ; go print ROWCOUNT ---------------------…