Python中zip()、zip(*zipped)、*zip()函数总结
前言:本博文主要讲解Python中zip()、zip(*zipped)、*zip()的用法及区别。
文章目录
- 一、zip()函数
- 1.1、语法
- 1.2、返回值
- 1.3、实例
- 二、zip(*zipped)
- 三、*zip()函数
一、zip()函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*
号操作符,可以将元组解压为列表。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换;如需展示字典,需手动 dict() 转换。
1.1、语法
zip([iterable, ...])
参数说明:iterable(一个或多个迭代器)
1.2、返回值
- 返回元祖列表
1.3、实例
# 定义三个列表
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]# 打包为元组的列表,而且元素个数与最短的列表一致
a_b = zip(a, b)
# 输出zip函数的返回对象类型
print("a_b类型%s" % type(a_b))
# 输出a_b
print(a_b)
首先我们定义三个列表,并为a,b列表使用zip()函数,我们简单的看一下结果:
通过上面的运行结果,我们可以看出:zip函数的返回对象类型是一个zip类型,我们直接来输出a_b的结果,返回了这个zip对象在内存中的存储位置。那么下来,我们用list()对其进行一个转换:
print(list(a_b))
可以看出,它返回了由这些元组组成的列表。
注意:zip()函数的返回对象转换成list不是必须的,只是为了方便输出,list输出很直观。
那么下来,我们测试下当迭代器的元素个数不一致时,是如何进行操作的。
a_c = zip(a, c)
print(list(a_c))
通过这个执行结果,我们可以清晰的看到:如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
二、zip(*zipped)
zip(*zipped)中的 *zipped参数,可以list数组,也可以是zip()函数返回的对象。
# 声明一个列表
nums = [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']]# 参数为list数组时,是压缩数据,相当于zip()函数
iters = zip(*nums)
# 输出zip(*zipped)函数返回对象的类型
print("type of iters is %s" % type(iters))
# 因为zip(*zipped)函数返回一个zip类型对象,所以我们需要对其进行转换
# 在这里,我们将其转换为字典
print(dict(iters))
注意:该dict()函数可用于将zip对象转换为字典。需要注意的是,只能使用两个zip()参数,前者产生key,后者产生value。
三、*zip()函数
*zip()函数是zip()函数的逆过程,将zip对象变成原先组合前的数据。
# 创建2个列表
m = [1, 2, 3]
n = [4, 5, 6]print("*zip(m, n)返回:", *zip(m, n))
m2, n2 = zip(*zip(m, n))
print("m2和n2的值分别为:", m2, n2)
# 若相等,返回True;说明*zip为zip的逆过程
print(m == list(m2) and n == list(n2))
Python中zip()、zip(*zipped)、*zip()函数总结相关推荐
- python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?
1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...
- python中实现延时回调普通函数示例代码
这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 回调函 ...
- Python中常用的高阶函数
Python 中常用的高阶函数 ① filter(function,iterable)filter(function, iterable)filter(function,iterable) 过滤器 ...
- Python中的startswith和endswith函数使用实例
Python中的startswith和endswith函数使用实例 在Python中有两个函数分别是startswith()函数与endswith()函数,功能都十分相似,startswith()函数 ...
- python整数转换字符串_使用Python中的str()函数将整数值转换为字符串
python整数转换字符串 Given an integer value and we have to convert the value to the string using str() func ...
- Python中常用最神秘的函数! lambda 函数深度总结!
今天我们来学习 Python 中的 lambda 函数,并探讨使用它的优点和局限性 Let's do it! 什么是 Python 中的 Lambda 函数 lambda 函数是一个匿名函数(即,没有 ...
- python一个函数调用另一个函数中的变量_在Python 中同一个类两个函数间变量的调用方法...
在Python 中同一个类两个函数间变量的调用方法 更新时间:2019年01月31日 15:44:54 作者:wxy_summer 今天小编就为大家分享一篇在Python 中同一个类两个函数间变量的调 ...
- python中hex,oct,chr,ord函数讲解
问题描述:遇到一段python代码,不知道是什么意思 for char in content:hexes.append(hex(ord(char))) 代码的讲解如下: 将字符串中的每个自负转化为整 ...
- Python中缺失值删除 pd.dropna()函数
[小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中缺失值删除 pd.dropna()函数 ● 选择题 以下 ...
- Python中numpy.linalg库常用函数
Python中numpy.linalg库常用函数 numpy.linalg Python中numpy.linalg库常用函数 简单记录所遇到的numpy库内置函数 矩阵与向量积 ①np.linalg. ...
最新文章
- 简单的5*5,五子棋小游戏
- NetStream.appendBytes, 走向Flash P2P VOD的第一步
- 运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist
- AIR 中 File 对象的几个系统文件夹及其属性.
- python列表元组字符串都属于有序数列_列表、元组、字符串是Python的__________(有序、无序?)序列。...
- 信用卡逾期记录已经超过5年,为何还不能申请贷款?
- linux用rsync实现同步,Linux下使用rsync实现主备机代码同步
- 搞定使用MySQL导入外部的SQL文件执行
- C++——判身份证号码真伪
- 数字电路逻辑设计之逻辑函数
- java解指派问题,运用Excel规划求解解决指派问题
- android system.img userdata.img文件解包打包及设置
- 自动驾驶轨迹规划--算法综述
- 安卓逆向-new-sec6-5 平头哥框架hook简介 | 类加载器 | 内部类
- android如何基于父布局,如何根据父视图的尺寸调整Android视图的大小
- Cordova中第三方UI插件的使用(2)--Topcoat
- mysql事件示例_卓象程序员:Mysql数据库事件使用与示例
- 期货:移动平均线(MA)技术指标图形
- GBase 8a 数据迁移工具4--- Oracle数据迁移工具“orato8a”
- 李彦宏造神路线揭秘:23万粉丝超越马云李开复
热门文章
- Python基础练习题(按条件对指定序列求和,打印99乘法表、求斐波那契数列、百马百担、求水仙花数、求n以内的所有质数(素数)和)
- 程序员如何成长?如何进阶?——一个老程序员的经验分享2
- 上海交通大学能源动力(核能与核技术工程)考研上岸前辈备考经验
- 基于JSP的教务管理系统设计
- unable to get repr for class 'torch.tensor'
- ClickHouse-入门及Linux单机安装
- 安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等【二】
- 大神都已经在用python爬取高德地图了
- 中望3D 2021导出剖面线为单根线段
- 扬声器测试专业软件,AudioTester