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中对元组和列表按条件进行排序的方法示例
Nov 10 Python
Python基于pillow判断图片完整性的方法
Sep 18 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
python 调用钉钉机器人的方法
Feb 20 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
Python numpy线性代数用法实例解析
Nov 15 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
python扫描线填充算法详解
Feb 19 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
Jul 21 Python
pycharm 代码自动补全的实现方法(图文)
Sep 18 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 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与分页效率
2008/06/04 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
img标签中onerror用法
2009/08/13 Javascript
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
Python3基础之函数用法
2014/08/13 Python
python 远程统计文件代码分享
2015/05/14 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
Python实现数字的格式化输出
2020/08/01 Python
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
如何获得EntityManager
2014/02/09 面试题
什么是封装
2013/03/26 面试题
医学院四年学习生活的自我评价
2013/11/06 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
护理专科自荐书范文
2014/02/18 职场文书
陈欧的广告词
2014/03/18 职场文书
中小学生学籍证明
2014/10/25 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
Java 多线程协作作业之信号同步
2022/05/11 Java/Android