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从零开始创建区块链
Mar 06 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
python实现类之间的方法互相调用
Apr 29 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
Python中的CSV文件使用"with"语句的方式详解
Oct 16 Python
记录Python脚本的运行日志的方法
Jun 05 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
pytorch 共享参数的示例
Aug 17 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
python将dict中的unicode打印成中文实例
May 11 Python
基于python模拟bfs和dfs代码实例
Nov 19 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/10/23 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
PHP中使用curl入门教程
2015/07/02 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
Vue中props的使用详解
2018/06/15 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
介绍Python的@property装饰器的用法
2015/04/28 Python
python中关于for循环的碎碎念
2017/06/30 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python如何安装下载后的模块
2020/07/03 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
自我评价范文点评
2013/12/04 职场文书
求职简历中的自我评价分享
2013/12/08 职场文书
中英文求职信范文
2014/01/27 职场文书
搞笑获奖感言
2014/01/30 职场文书
公务员个人总结
2015/02/12 职场文书
投标单位介绍信
2015/05/05 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL