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格式化压缩后的JS文件的方法
Mar 05 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
Pytorch之view及view_as使用详解
Dec 31 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
Python sorted对list和dict排序
Jun 09 Python
django下创建多个app并设置urls方法
Aug 02 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
在Python 中将类对象序列化为JSON
Apr 06 Python
Python基本知识点总结
Apr 07 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
对javascript和select部件的结合运用
2006/10/09 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
微信access_token的获取开发示例
2015/04/16 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
详解ES6 Symbol 的用途
2018/10/14 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
python如何写try语句
2020/07/14 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
六查六看自查材料
2014/02/17 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
父母对孩子说的话
2014/04/12 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技