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实现的简单RPG游戏流程实例
Jun 28 Python
Python Nose框架编写测试用例方法
Oct 26 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
python可视化爬虫界面之天气查询
Jul 03 Python
django中forms组件的使用与注意
Jul 08 Python
django和vue实现数据交互的方法
Aug 21 Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
Python csv文件记录流程代码解析
Jul 16 Python
Python try except finally资源回收的实现
Jan 25 Python
Django 如何实现文件上传下载
Apr 08 Python
Python利器openpyxl之操作excel表格
Apr 17 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实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
python绘制分布折线图的示例
2020/09/24 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
什么是唯一索引
2015/07/05 面试题
快餐店的创业计划书范文
2014/01/29 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
运动会跳远加油稿
2014/02/20 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
暑期培训班策划方案
2014/08/26 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
《静夜思》教学反思
2016/02/17 职场文书
四则混合运算教学反思
2016/02/23 职场文书