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实现爬虫下载漫画示例
Feb 16 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python切片知识解析
Mar 06 Python
剖析Python的Twisted框架的核心特性
May 25 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
Python 实现文件打包、上传与校验的方法
Feb 13 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
Python搭建Keras CNN模型破解网站验证码的实现
Apr 07 Python
怎么用Python识别手势数字
Jun 07 Python
python 标准库原理与用法详解之os.path篇
Oct 24 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
js电信网通双线自动选择技巧
2008/11/18 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
Tensorflow之Saver的用法详解
2018/04/23 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
python爬虫实现获取下一页代码
2020/03/13 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
毕业生个人求职的自我评价
2013/10/28 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
nginx 配置缓存
2022/05/11 Servers