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+django快速实现文件上传
Oct 24 Python
通过源码分析Python中的切片赋值
May 08 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
Python3 处理JSON的实例详解
Oct 29 Python
python机器学习之神经网络(一)
Dec 20 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
浅析python 字典嵌套
Sep 29 Python
Python 列表反转显示的四种方法
Nov 16 Python
利用python查看数组中的所有元素是否相同
Jan 08 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
咖啡语言
2021/03/03 咖啡文化
PHP与javascript的两种交互方式
2006/10/09 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
Python进阶之尾递归的用法实例
2018/01/31 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
省文明单位申报材料
2014/05/08 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python