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 提取文件的小程序
Jul 29 Python
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
python实现ipsec开权限实例
Nov 11 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
Python解析树及树的遍历
Feb 03 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
python读取各种文件数据方法解析
Dec 29 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
pycharm显示远程图片的实现
Nov 04 Python
Python 实现一个简单的web服务器
Jan 03 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生成的一个树叶图片画图例子
2014/04/16 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
什么是属性访问器
2015/10/26 面试题
介绍一下EJB的体系结构
2012/08/01 面试题
学习十八大报告感言
2014/02/04 职场文书
税务干部鉴定材料
2014/02/11 职场文书
大学生个人求职信例文
2014/07/07 职场文书
介绍信样本
2015/01/31 职场文书
酒会邀请函
2015/01/31 职场文书
少先队工作总结2015
2015/05/13 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL