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判断变量是否为Json格式的字符串示例
May 03 Python
Python引用传值概念与用法实例小结
Oct 07 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
Python的CGIHTTPServer交互实现详解
Feb 08 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
使用python接入微信聊天机器人
Mar 31 Python
django admin组件使用方法详解
Jul 19 Python
三个python爬虫项目实例代码
Dec 28 Python
python实现低通滤波器代码
Feb 26 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 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 fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
yii数据库的查询方法
2015/12/28 PHP
JQuery index()方法使用代码
2010/06/02 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
angularjs性能优化的方法
2018/09/05 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
python机器学习理论与实战(二)决策树
2018/01/19 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
python matlab库简单用法讲解
2020/12/31 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
互动出版网:专业书籍
2017/03/21 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
宣传策划类求职信范文
2014/01/31 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
小学英语教学随笔
2015/08/14 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书