Python高级用法:打包(zip)与拆包

使用zip合并列表

如果需要同时遍历多个列表中对应元素,我们可以使用zip将不同的列表打包在一起

for item in zip([1, 2, 3], [4, 5, 6]):
	print(item)

运行结果如下:

Python高级用法:打包(zip)与拆包_第1张图片

如果列表中所含元素的数量不一致,使用zip会按照最短的列表自动匹配截取

Python高级用法:打包(zip)与拆包_第2张图片

解包

简单理解,解包就是将右侧多个值同时赋值给左侧多个变量的过程,赋值的对象可以是列表、元组,也可以是以逗号分割的多个值。

我们首先来看针对列表和元组的解包

a, b, c = [1, 2, 3]

运行结果如下:

Python高级用法:打包(zip)与拆包_第3张图片

a, b, c = (1, 2, 3)

运行结果如下:

Python高级用法:打包(zip)与拆包_第4张图片

下面来看以逗号分割的多个值的拆包过程

a, b, c = 1, '2', 3

Python高级用法:打包(zip)与拆包_第5张图片

这里需要主要的是拆包左右两侧的变量数目应该一致,如果不一致就会出现下面的这种状况。
在这里插入图片描述

在这里插入图片描述

如果遇到右侧是值比左侧变量多,但是要规避掉报错,可以采用以下的方式

a, b, *c = 1, 2, 3, 4

Python高级用法:打包(zip)与拆包_第6张图片

仅仅是在其中一个变量前面加上*就可以完美的解决这个问题,同时还可以根据需要,在不同位置的变量前加上*

a, *b, c = 1, 2, 3, 4

Python高级用法:打包(zip)与拆包_第7张图片

除此之外还可以进行嵌套解包,只要值与变量能够一一对应即可

(a, b), (c, d) = (1, 2), (3, 4)

Python高级用法:打包(zip)与拆包_第8张图片

你可能感兴趣的:(python高级用法,python,开发语言)