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 相关文章推荐
Python3 正在毁灭 Python的原因分析
Nov 28 Python
在Python中利用Pandas库处理大数据的简单介绍
Apr 07 Python
对于Python装饰器使用的一些建议
Jun 03 Python
pycharm创建一个python包方法图解
Apr 10 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
python 日志 logging模块详细解析
Mar 31 Python
pandas dataframe 中的explode函数用法详解
May 18 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
如何利用python 读取配置文件
Jan 06 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 md5下16位和32位的实现代码
2008/04/09 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
PHP面向对象精要总结
2014/11/07 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
详细分析python3的reduce函数
2017/12/05 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
python如何变换环境
2020/07/21 Python
Python 内存管理机制全面分析
2021/01/16 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
银行自荐信范文
2013/10/07 职场文书
给老师的一封建议书
2014/03/13 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
初二学生评语大全
2014/12/26 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android