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 相关文章推荐
Django中Forms的使用代码解析
Feb 10 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
基于python进行桶排序与基数排序的总结
May 29 Python
Python使用jsonpath-rw模块处理Json对象操作示例
Jul 31 Python
django+xadmin+djcelery实现后台管理定时任务
Aug 14 Python
Python音频操作工具PyAudio上手教程详解
Jun 26 Python
python实现控制COM口的示例
Jul 03 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
pycharm修改file type方式
Nov 19 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 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原创论坛
2006/10/09 PHP
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python中Genarator函数用法分析
2015/04/08 Python
学习和使用python的13个理由
2019/07/30 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
酒店管理自荐信
2013/10/23 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
公司董事任命书
2015/09/21 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python