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 相关文章推荐
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
Python中property属性实例解析
Feb 10 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
用Django写天气预报查询网站
Oct 21 Python
python opencv读mp4视频的实例
Dec 07 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
Django app配置多个数据库代码实例
Dec 17 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
Python如何测试stdout输出
Aug 10 Python
Django ModelForm组件原理及用法详解
Oct 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
php获取服务器信息的实现代码
2013/02/04 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
PHP count()函数讲解
2019/02/03 PHP
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
Python制作exe文件简单流程
2019/01/24 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
python实现支付宝转账接口
2019/05/07 Python
Python中url标签使用知识点总结
2020/01/16 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
高考自主招生自荐信
2013/10/20 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
学习计划是什么
2019/04/30 职场文书
原生JS实现分页
2022/04/19 Javascript