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中的装饰器、闭包和functools的教程
Apr 02 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
Anaconda下安装mysql-python的包实例
Jun 11 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
python多线程并发实例及其优化
Jun 27 Python
如何使用Python 打印各种三角形
Jun 28 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
python安装本地whl的实例步骤
Oct 12 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
Python猴子补丁知识点总结
Jan 05 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
python处理json数据文件
Apr 11 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之COOKIE支持详解
2010/09/20 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PDO::inTransaction讲解
2019/01/28 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
XmlUtils JS操作XML工具类
2009/10/01 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
python发送伪造的arp请求
2014/01/09 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
python实现程序重启和系统重启方式
2020/04/16 Python
django中嵌套的try-except实例
2020/05/21 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
电力公司个人求职信范文
2014/02/04 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
java实现对Hadoop的操作
2021/07/01 Java/Android