Python中zip()函数的简单用法举例


Posted in Python onSeptember 02, 2019

Python中zip()函数的简单用法举例

定义:zip([iterable, ...])

zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),看下面的例子就明白了:

>>> a = [1,2,3]

>>> b = [4,5,6]

>>> c = [4,5,6,7,8]

>>> zipped = zip(a,b)

[(1, 4), (2, 5), (3, 6)]

>>> zip(a,c)

[(1, 4), (2, 5), (3, 6)]

>>> zip(*zipped)

[(1, 2, 3), (4, 5, 6)]

对于这个并不是很常用函数,下面举几个例子说明它的用法:

* 二维矩阵变换(矩阵的行列互换)

比如我们有一个由列表描述的二维矩阵

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

通过python列表推导的方法,我们也能轻易完成这个任务

print [ [row[col] for row in a] for col in range(len(a[0]))]

[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

另外一种让人困惑的方法就是利用zip函数:

>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

>>> zip(*a)

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

>>> map(list,zip(*a))

[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

zip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。

①tuple的新序列

>>>>x=[1,2,3],y=['a','b','c']
>>>zip(x,y)
[(1,'a'),(2,'b'),(3,'c')]

②新的序列的长度以参数中最短的序列为准.

>>>>x=[1,2],y=['a','b','c']
>>>zip(x,y)
[(1,'a'),(2,'b')]

③(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。

>>>>x=[1,2,3],y=['a','b','c']
>>>>zip(*zip(x,y))
[(1,2,3),('a','b','c')]

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python脚本实现查找webshell的方法
Jul 31 Python
python实现从web抓取文档的方法
Sep 26 Python
Python 3.x 新特性及10大变化
Jun 12 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
Python3解释器知识点总结
Feb 19 Python
Python实战购物车项目的实现参考
Feb 20 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
Python视频编辑库MoviePy的使用
Apr 01 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
python3 简单实现组合设计模式
Jul 02 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 #Python
Python 读取用户指令和格式化打印实现解析
Sep 02 #Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 #Python
Python目录和文件处理总结详解
Sep 02 #Python
Python3操作Excel文件(读写)的简单实例
Sep 02 #Python
python函数修饰符@的使用方法解析
Sep 02 #Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 #Python
You might like
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP实现微信退款功能
2018/10/02 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
JavaScript面向对象编程
2008/03/02 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
Python写的一个简单DNS服务器实例
2014/06/04 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
python中的global关键字的使用方法
2019/08/20 Python
python实现两个文件夹的同步
2019/08/29 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
韩国现代百货官网:Hmall
2018/03/21 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
学习十八大宣传标语
2014/10/09 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
Python预测分词的实现
2021/06/18 Python
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL