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列表list数组array用法实例解析
Oct 28 Python
详解Python中用于计算指数的exp()方法
May 14 Python
python中base64加密解密方法实例分析
May 16 Python
python轻松查到删除自己的微信好友
Jan 10 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
Python如何使用字符打印照片
Jan 03 Python
python实现简单学生信息管理系统
Apr 09 Python
python合并多个excel文件的示例
Sep 23 Python
举例讲解Python装饰器
Dec 24 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 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实现读取和编写XML DOM代码
2010/04/07 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
python实现感知器
2017/12/19 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
承诺书范文
2014/06/03 职场文书
中文专业自荐书
2014/06/29 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
Python基础之元类详解
2021/04/29 Python
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏