当我们使用Python操作压缩文件时,经常会遇到需要解压缩序列的情况。Python提供了一个内置的方法zip()
可以将两个或多个序列压缩到一起。而解压缩序列,则可以使用*
进行解压。
如下述代码块,构造了两个序列a
和b
,通过zip()
将两个序列压缩成了一个zip对象,并通过*
解压和显式打印了该对象:
a = [1, 2, 3]
b = [4, 5, 6]
zipped = zip(a, b)
print(*zipped)
输出结果如下:
(1, 4) (2, 5) (3, 6)
那么如何使用一个压缩对象进行解压缩呢?可以使用zip()
的配对特性,将上述代码块修改为如下代码块进行测试:
c_zip = [('a', 1), ('b', 2), ('c', 3)]
c_letter, c_number = zip(*c_zip)
print(c_letter)
print(c_number)
结果如下:
('a', 'b', 'c')
(1, 2, 3)
可以看到,上述代码通过配对特性,把c_zip
压缩对象分别解压缩为了两个序列c_letter
和c_number
。
需要注意的是,zip()
方法在压缩时会挑选最小长度的序列进行压缩,如果长度不同,则只会压缩到最小的长度。如果还有元素没有被压缩,则会被忽略。
以上是Python将压缩序列解压使用方法的完整攻略,下面还有一条示例:
d = [1, 2]
e = [3, 4, 5]
d_e = zip(d, e)
print(*d_e)
输出结果如下:
(1, 3) (2, 4)
可以看到,zip()
方法在这里只取到了最小长度的长度2,第三个元素5被忽略了。