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函数参数*args**kwargs用法实例
Dec 04 Python
使用python的chardet库获得文件编码并修改编码
Jan 22 Python
Python SQLite3数据库操作类分享
Jun 10 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
python中Flask框架简单入门实例
Mar 21 Python
Java中重定向输出流实现用文件记录程序日志
Jun 12 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
python实现公司年会抽奖程序
Jan 22 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
python统计指定目录内文件的代码行数
Sep 19 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
Python实现Matplotlib,Seaborn动态数据图
May 06 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
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
JavaScript常用工具方法封装
2019/02/12 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python中global与nonlocal比较
2014/11/21 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
医药销售求职信范文
2014/02/01 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
停车场管理协议书范本
2014/10/08 职场文书
刑事附带民事上诉状
2015/05/23 职场文书