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 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Django实现图片文字同时提交的方法
May 26 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
python爬取网易云音乐评论
Nov 16 Python
python科学计算之scipy——optimize用法
Nov 25 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
python实现逻辑回归的示例
Oct 09 Python
Django正则URL匹配实现流程解析
Nov 13 Python
Django多个app urls配置代码实例
Nov 26 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/04/09 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php提取微信账单的有效信息
2018/10/01 PHP
php-fpm中max_children的配置
2019/03/15 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
微信小程序开发之map地图实现教程
2017/06/08 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
用python实现刷点击率的示例代码
2019/02/21 Python
python3实现微型的web服务器
2019/09/03 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
高三政治教学反思
2014/02/06 职场文书
岗位说明书怎么写
2014/07/30 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
春晚观后感
2015/06/11 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书