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中类的继承代码实例
Oct 28 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
Python基于checksum计算文件是否相同的方法
Jul 09 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
使用python实现mqtt的发布和订阅
May 05 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
python manage.py runserver流程解析
Nov 08 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
PHP开发中常用的8个小技巧
2008/08/27 PHP
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
php遍历CSV类实例
2015/04/14 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
理论讲解python多进程并发编程
2018/02/09 Python
python 中字典嵌套列表的方法
2018/07/03 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
印尼网上商店:Alfacart.com
2019/03/11 全球购物
个人求职信范文分享
2013/12/13 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
筑梦中国心得体会
2016/01/18 职场文书