Python中zip函数如何使用


Posted in Python onJune 04, 2020

介绍

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
ps. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

例子

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]

zipped = zip(a,b) # 打包为元组的列表
# 输出:[(1, 4), (2, 5), (3, 6)]

zip(a,c) # 元素个数与最短的列表一致
# 输出:[(1, 4), (2, 5), (3, 6)]

zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

直接看示例:

1.示例1:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print xyz

运行的结果是:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

从这个结果可以看出zip函数的基本运作方式。

2.示例2:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy

运行的结果是:

代码如下:

[(1, 4), (2, 5), (3, 6)]

从这个结果可以看出zip函数的长度处理方式。

3.示例3:

代码如下:

x = [1, 2, 3]
x = zip(x)
print x

运行的结果是:

代码如下:

[(1,), (2,), (3,)]

从这个结果可以看出zip函数在只有一个参数时运作的方式。

4.示例4:

代码如下:

x = zip()
print x

运行的结果是:

代码如下:

[]

从这个结果可以看出zip函数在没有参数时运作的方式。

5.示例5:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
u = zip(*xyz)
print u

运行的结果是:

代码如下:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

6.示例6:

代码如下:

x = [1, 2, 3]
r = zip(* [x] * 3)
print r

运行的结果是:

代码如下:

[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的运行机制是这样的:

[x]生成一个列表的列表,它只有一个元素x

[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

zip(* [x] * 3)的意思就明确了,zip(x, x, x)

到此这篇关于Python中zip函数如何使用的文章就介绍到这了,更多相关Python中的zip函数用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
Python随机生成带特殊字符的密码
Mar 02 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
Flask实现跨域请求的处理方法
Sep 27 Python
flask session组件的使用示例
Dec 25 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
python制作图片缩略图
Apr 30 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
python的launcher用法知识点总结
Aug 07 Python
Python中有几个关键字
Jun 04 #Python
Python如何转换字符串大小写
Jun 04 #Python
如何在Python对Excel进行读取
Jun 04 #Python
opencv 查找连通区域 最大面积实例
Jun 04 #Python
Python中的Cookie模块如何使用
Jun 04 #Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 #Python
Python中的全局变量如何理解
Jun 04 #Python
You might like
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
关于尾递归的使用详解
2013/05/02 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
简单了解常用的JavaScript 库
2020/07/16 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
Python去除字符串两端空格的方法
2015/05/21 Python
python实现数独算法实例
2015/06/09 Python
Python实现带百分比的进度条
2016/06/28 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
python实现大文本文件分割
2019/07/22 Python
python matplotlib拟合直线的实现
2019/11/19 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
python字典key不能是可以是啥类型
2020/08/04 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
判断单链表中是否存在环
2012/07/16 面试题
社区安全检查制度
2014/02/03 职场文书
学生党支部先进事迹
2014/02/04 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
Python字符串的转义字符
2022/04/07 Python
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers