Python中zip函数如何使用


Posted in Python onJune 04, 2020

介绍

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
ps. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

例子

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) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

直接看示例:

1.示例1:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print xyz

运行的结果是:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

从这个结果可以看出zip函数的基本运作方式。

2.示例2:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy

运行的结果是:

代码如下:

[(1, 4), (2, 5), (3, 6)]

从这个结果可以看出zip函数的长度处理方式。

3.示例3:

代码如下:

x = [1, 2, 3]
x = zip(x)
print x

运行的结果是:

代码如下:

[(1,), (2,), (3,)]

从这个结果可以看出zip函数在只有一个参数时运作的方式。

4.示例4:

代码如下:

x = zip()
print x

运行的结果是:

代码如下:

[]

从这个结果可以看出zip函数在没有参数时运作的方式。

5.示例5:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
u = zip(*xyz)
print u

运行的结果是:

代码如下:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

6.示例6:

代码如下:

x = [1, 2, 3]
r = zip(* [x] * 3)
print r

运行的结果是:

代码如下:

[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的运行机制是这样的:

[x]生成一个列表的列表,它只有一个元素x

[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

zip(* [x] * 3)的意思就明确了,zip(x, x, x)

到此这篇关于Python中zip函数如何使用的文章就介绍到这了,更多相关Python中的zip函数用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Python代码实现KNN算法
Dec 20 Python
python读取目录下最新的文件夹方法
Dec 24 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
Mar 09 Python
python实现梯度法 python最速下降法
Mar 24 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
Python实现粒子群算法的示例
Feb 14 Python
python数字图像处理数据类型及颜色空间转换
Jun 28 Python
Python中有几个关键字
Jun 04 #Python
Python如何转换字符串大小写
Jun 04 #Python
如何在Python对Excel进行读取
Jun 04 #Python
opencv 查找连通区域 最大面积实例
Jun 04 #Python
Python中的Cookie模块如何使用
Jun 04 #Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 #Python
Python中的全局变量如何理解
Jun 04 #Python
You might like
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
php实现word转html的方法
2016/01/22 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
JS实现网页烟花动画效果
2020/03/10 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python实现批量注册网站用户的示例
2019/02/22 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
心理健康教育制度
2014/01/27 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
聘任证明怎么写
2015/03/02 职场文书