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网络编程详解
Oct 31 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
elementUI select组件value值注意事项详解
2019/05/29 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
python监控nginx端口和进程状态
2019/09/06 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
python 用struct模块解决黏包问题
2020/11/07 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
家长给小学生的评语
2014/01/30 职场文书
员工晚婚的请假条
2014/02/08 职场文书
车间机修工岗位职责
2014/02/28 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
政府会议通知范文
2015/04/15 职场文书
2015年维修工作总结
2015/04/25 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python