如果需要同时遍历多个列表中对应元素,我们可以使用zip将不同的列表打包在一起
for item in zip([1, 2, 3], [4, 5, 6]):
print(item)
运行结果如下:
如果列表中所含元素的数量不一致,使用zip会按照最短的列表自动匹配截取
简单理解,解包就是将右侧多个值同时赋值给左侧多个变量的过程,赋值的对象可以是列表、元组,也可以是以逗号分割的多个值。
我们首先来看针对列表和元组的解包
a, b, c = [1, 2, 3]
运行结果如下:
a, b, c = (1, 2, 3)
运行结果如下:
下面来看以逗号分割的多个值的拆包过程
a, b, c = 1, '2', 3
这里需要主要的是拆包左右两侧的变量数目应该一致,如果不一致就会出现下面的这种状况。
如果遇到右侧是值比左侧变量多,但是要规避掉报错,可以采用以下的方式
a, b, *c = 1, 2, 3, 4
仅仅是在其中一个变量前面加上*就可以完美的解决这个问题,同时还可以根据需要,在不同位置的变量前加上*
a, *b, c = 1, 2, 3, 4
除此之外还可以进行嵌套解包,只要值与变量能够一一对应即可
(a, b), (c, d) = (1, 2), (3, 4)