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下如何让web元素的生成更简单的分析
Jul 17 Python
python数据结构树和二叉树简介
Apr 29 Python
python处理PHP数组文本文件实例
Sep 18 Python
python实现在目录中查找指定文件的方法
Nov 11 Python
Python去除列表中重复元素的方法
Mar 20 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
May 11 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
Python算法应用实战之栈详解
Feb 04 Python
window下eclipse安装python插件教程
Apr 24 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 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数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
优秀幼教自荐信
2014/02/03 职场文书
网络书店创业计划书
2014/02/07 职场文书
外贸专业求职信
2014/03/09 职场文书
马智宇结婚主持词
2014/04/01 职场文书
公司担保书范文
2014/05/21 职场文书
母亲节演讲稿
2014/05/27 职场文书
公司委托书格式范本
2014/09/16 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
2014年少先队工作总结
2014/12/03 职场文书
客房部经理岗位职责
2015/02/02 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js