zip()函数:
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)
输出:
[(1, 2, 3), (4, 5, 6)] # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
同时遍历两个序列:
list1 = [1, 2, 3, 4, 5]
str1 = 'abcde'
for i, ii in zip(list1, str1): # 两个序列的长度相同情况下
print(i, ii) # i, ii是一个解包的过程
输出:
1 a
2 b
3 c
4 d
5 e
-----------------------------------------------------------
list2 = [1, 2, 3, 4, 5, 6, 7]
str2 = 'abcde'
for i, ii in zip(list2, str2): # 两个序列长度不同情况下
print(i, ii)
输出:
1 a
2 b
3 c
4 d
5 e # 两个序列长度不一致时,遍历次数为短序列的长度