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 pass 语句使用示例
Mar 11 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
Python读写及备份oracle数据库操作示例
May 17 Python
详解Numpy中的广播原则/机制
Sep 20 Python
python3 cvs将数据读取为字典的方法
Dec 22 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 Python
python复合条件下的字典排序
Dec 18 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
python实现图片转字符画的完整代码
Feb 21 Python
如何使用Python实现一个简易的ORM模型
May 12 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动态生成JavaScript代码
2009/03/09 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
javascript基础知识
2016/06/07 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
Python编程之event对象的用法实例分析
2017/03/23 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
医院保洁服务方案
2014/06/11 职场文书
生物学专业求职信
2014/07/23 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
写给导师的自荐信
2015/03/06 职场文书
文明旅游倡议书
2015/04/28 职场文书
八年级物理教学反思
2016/02/19 职场文书
八年级作文之感恩
2019/11/22 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis