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记录详细调用堆栈日志的方法
May 05 Python
Python字符串处理实例详解
May 18 Python
requests和lxml实现爬虫的方法
Jun 11 Python
Python实现的递归神经网络简单示例
Aug 11 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
python django中8000端口被占用的解决
Dec 17 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 Python
Python操作CSV格式文件的方法大全
Jul 15 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 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的单引号和双引号 字符串效率
2009/05/27 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
javascript英文日期(有时间)选择器
2007/05/02 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
浅析node.js中close事件
2014/11/26 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
Django自定义认证方式用法示例
2017/06/23 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
Python跳出多重循环的方法示例
2019/07/03 Python
深入了解Python在HDA中的应用
2019/09/05 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
英国最大的海报商店:GB Posters
2018/03/20 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
省优秀教师事迹材料
2014/01/30 职场文书
2014年创卫实施方案
2014/02/18 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
工作证明格式及范本
2014/09/12 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
排球赛新闻稿
2015/07/17 职场文书
外出培训学习心得体会
2016/01/18 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android