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实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
Python时间获取及转换知识汇总
Jan 11 Python
关于Django外键赋值问题详解
Aug 13 Python
python 多个参数不为空校验方法
Feb 14 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
python hashlib加密实现代码
Oct 17 Python
python通过实例讲解反射机制
Oct 17 Python
keras K.function获取某层的输出操作
Jun 29 Python
python绘制高斯曲线
Feb 19 Python
golang中的空接口使用详解
Mar 30 Python
python实现三次密码验证的示例
Apr 29 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魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
jquery密码强度校验
2015/12/02 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
浅析Jquery操作select
2016/12/13 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
Python数据结构之翻转链表
2017/02/25 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
办公室主任岗位职责
2013/11/08 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
生产部岗位职责范文
2014/02/07 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
超市理货员岗位职责
2014/07/04 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
道德与公民自我评价
2015/03/09 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
Python基础之元类详解
2021/04/29 Python