zip()函数既可以压缩序列(列表、元组、字典、集合、range())到一个zip文件,也可以用于拆分序列。具体使用案例会结合部分代码进行描述。
一、zip()函数将两个序列压缩
两个序列长度不同时,zip函数会采用“取短截长”策略按照最短序列长度对齐元素。新生成的元素构成元组对。
#将两个序列压缩对齐
la = [1,2,3,4]
lb = ['a','b','c']
res = zip(la,lb)
print(list(res))
#显示结果为: [(1, 'a'), (2, 'b'), (3, 'c')]
二、zip()函数用于拆包解析两个序列的数据
zip函数解析两个序列的数据可以有两个方法,方法一是对压缩文件使用解压缩手段并按照压缩序列个数赋值给相同个数的变量,方法二是利用for循环进行序列解析。
la = [1,2,3,4]
lb = ['a','b','c']
res = zip(la,lb)
#方法一:用于解压缩两个序列,并分别提取
x,y = zip(*res)
print(x) #x: (1, 2, 3)
print(y) #y: ('a', 'b', 'c')
#方法二:利用for循环直接提取序列
for x,y in zip(la,lb):
print(f'{x}--{y}',end=' ')
#结果为: 1--a 2--b 3--c