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 相关文章推荐
python正则表达式修复网站文章字体不统一的解决方法
Feb 21 Python
使用wxpython实现的一个简单图片浏览器实例
Jul 10 Python
Python中给List添加元素的4种方法分享
Nov 28 Python
Python 中的 else详解
Apr 23 Python
python抓取网页中链接的静态图片
Jan 29 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
Sep 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树的代码,可以嵌套任意层
2006/10/09 PHP
php如何获取文件的扩展名
2015/10/28 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
JavaScript模板入门介绍
2012/09/26 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
Python KMeans聚类问题分析
2018/02/23 Python
便捷提取python导入包的属性方法
2018/10/15 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
你懂得怎么写自荐信吗?
2013/12/27 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
小学教师读书活动总结
2014/07/08 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
公司2014年度工作总结
2014/12/10 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python