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自动安装pip
Apr 24 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
python实现类之间的方法互相调用
Apr 29 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
新手入门Python编程的8个实用建议
Jul 12 Python
pytorch 可视化feature map的示例代码
Aug 20 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
python opencv 实现对图像边缘扩充
Jan 19 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 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单件模式结合命令链模式使用说明
2008/09/07 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
写的htc的数据表格
2007/01/20 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
浅谈js中的bind
2019/03/18 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
python numpy格式化打印的实例
2018/05/14 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
汽车运用工程毕业生自荐信
2013/10/29 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL