Python中的zip函数使用示例


Posted in Python onJanuary 29, 2015

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 相关文章推荐
简单谈谈python的反射机制
Jun 28 Python
python交互式图形编程实例(一)
Nov 17 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
python实现Decorator模式实例代码
Feb 09 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
Python构建图像分类识别器的方法
Jan 12 Python
Python列表(List)知识点总结
Feb 18 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
Dec 18 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 Python
Python的另外几种语言实现
Jan 29 #Python
python中使用xlrd、xlwt操作excel表格详解
Jan 29 #Python
Python中实现常量(Const)功能
Jan 28 #Python
Python使用random和tertools模块解一些经典概率问题
Jan 28 #Python
Python中的异常处理学习笔记
Jan 28 #Python
Python中集合类型(set)学习小结
Jan 28 #Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 #Python
You might like
Banner程序
2006/10/09 PHP
图片按比例缩放函数
2006/06/26 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
Python lxml模块安装教程
2015/06/02 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
python调用接口的4种方式代码实例
2019/11/19 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
毕业生文员求职信
2013/11/03 职场文书
会计毕业生自我鉴定
2013/11/04 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
python编程项目中线上问题排查与解决
2021/11/01 Python
解析MySQL索引的作用
2022/03/03 MySQL
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技