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小技巧分享
Nov 22 Python
python实现比较两段文本不同之处的方法
May 30 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
Python搜索引擎实现原理和方法
Nov 27 Python
Sanic框架应用部署方法详解
Jul 18 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
Python 定义只读属性的实现方式
Mar 05 Python
Python脚本调试工具安装过程
Jan 11 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
Python如何配置环境变量详解
May 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
长波知识介绍
2021/03/01 无线电
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
php微信公众号开发之简答题
2018/10/20 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
基于webpack 实用配置方法总结
2017/09/28 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
公司员工的自我评价范例
2013/11/01 职场文书
4s客服专员岗位职责
2013/12/01 职场文书
高中同学聚会邀请函
2014/01/11 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
师德先进个人材料
2014/12/20 职场文书
银行员工考核评语
2014/12/31 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
Python之基础函数案例详解
2021/08/30 Python