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中as用法实例分析
Apr 30 Python
深入解读Python解析XML的几种方式
Feb 16 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
python实现网页自动签到功能
Jan 21 Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
如何在pycharm中安装第三方包
Oct 27 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 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 验证码制作(网树注释思想)
2009/07/20 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
js简单实现点击左右运动的方法
2015/04/10 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python使用minidom读写xml的方法
2015/06/03 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
Django ORM filter() 的运用详解
2020/05/14 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
SQL SERVER面试资料
2013/03/30 面试题
大学同学聚会邀请函
2014/01/29 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
二手房购房意向书范本
2014/04/01 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
实习证明模板
2015/06/16 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP
Docker下安装Oracle19c
2022/04/13 Servers