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自动化测试之setUp与tearDown实例
Sep 28 Python
Python中使用语句导入模块或包的机制研究
Mar 30 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
python ddt实现数据驱动
Mar 14 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
pygame实现简易飞机大战
Sep 11 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
python 实现识别图片上的数字
Jul 30 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
opencv3/C++图像像素操作详解
Dec 10 Python
Pytorch mask_select 函数的用法详解
Feb 18 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
如何使用PHP中的字符串函数
2006/10/09 PHP
一个PHP+MSSQL分页的例子
2006/10/09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python 删除非空文件夹的实例
2018/04/26 Python
python 以16进制打印输出的方法
2018/07/09 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
python多线程同步之文件读写控制
2021/02/25 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
python numpy数组复制使用实例解析
2020/01/10 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
Python日志器使用方法及原理解析
2020/09/27 Python
经典c++面试题五
2014/12/17 面试题
澳大利亚商务邀请函
2014/01/17 职场文书
小学语文教研活动总结
2014/07/01 职场文书
小学社会实践活动总结
2014/07/03 职场文书
写给女朋友的保证书
2015/05/09 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python