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 网络编程起步(Socket发送消息)
Sep 06 Python
Python编程中的反模式实例分析
Dec 08 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
Python打包可执行文件的方法详解
Sep 19 Python
简单易懂的python环境安装教程
Jul 13 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
解决django的template中如果无法引用MEDIA_URL问题
Apr 07 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 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
PHP4实际应用经验篇(2)
2006/10/09 PHP
php获取excel文件数据
2017/04/21 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
python 换位密码算法的实例详解
2017/07/19 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
用 python 进行微信好友信息分析
2020/11/28 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
2014财务年度工作总结
2014/11/11 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
冰雪公主观后感
2015/06/16 职场文书
小学班级标语口号大全
2015/12/26 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery