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学习教程之使用py2exe打包
Sep 24 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
django加载本地html的方法
May 27 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
python爬虫的一个常见简单js反爬详解
Jul 09 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
python实现网站微信登录的示例代码
Sep 18 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
python基础之爬虫入门
May 10 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 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 多个submit提交表单 处理方法
2009/07/07 PHP
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
python 消费 kafka 数据教程
2019/12/21 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
python 6行代码制作月历生成器
2020/09/18 Python
python 基于opencv去除图片阴影
2021/01/26 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
中专生自荐信
2014/06/25 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
党小组评议意见
2015/06/02 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python