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实现的防DDoS脚本
Feb 08 Python
Python 自动化表单提交实例代码
Jun 08 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
Python callable()函数用法实例分析
Mar 17 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
Django对models里的objects的使用详解
Aug 17 Python
python字符串格式化方式解析
Oct 19 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 Python
python实现简单学生信息管理系统
Apr 09 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 07 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和Java的des加密解密代码分享
2014/06/26 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
共享自己写一个框架DreamScript
2007/01/20 Javascript
FireFox JavaScript全局Event对象
2009/06/14 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
原生JS实现留言板
2020/03/26 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
python中实现控制小数点位数的方法
2019/01/24 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python函数调用追踪实现代码
2020/11/27 Python
人民教师的自我评价分享
2014/02/21 职场文书
本科生就业推荐信
2014/05/19 职场文书
特此通知格式
2015/04/27 职场文书
导游词之五台山
2019/10/11 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript