zip()函数
(1)相关描述
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
(2)具体用法
1)将两个列表进行组合(两个列表的长度一致)
a = [1,2,3]
b = [4,5,6]
c = list(zip(a,b))
Output: [(1, 4), (2, 5), (3, 6)]
2) 将两个列表进行组合(两个列表的长度不一致)
a = [1,2,3,4]
b = [4,5,6]
c = list(zip(a,b))
Output: [(1, 4), (2, 5), (3, 6)]
or
a = [1,2,3]
b = [4,5,6,7]
c = list(zip(a,b))
Output: [(1, 4), (2, 5), (3, 6)]
注:由此可见,zip会自动匹配。
3)当我们想回退为迭代器组合之前的状态时,我们可以利用*“解压”现在“压缩”过的新的迭代对象
a = [1,2,3]
b = [4,5,6]
c = list(zip(a,b))
origin = list(zip(*c))
output:[(1,2,3),(4,5,6)]
这里解释下函数中*和**
*args 传入一个非键值对的可变数量的参数列表
**kwargs 传入不定长度的键值对
4)利用zip同时遍历两个列表
注:这里要使用zip的前提是两个列表的元素一致,否则无法使用。
a = [1,2,3]
b = [4,5,6]
for i,j in zip(a,b):
print(i) # 列表a里面的元素
print(j) # 列表b里面的元素
5)利用zip给list添加索引
a = [1,2,3]
lenght = len(a)
b = zip(*(range(lenght),a))
c = list(b)
output:[(0,1),(1,2),(2,3)]