看网上有不少旧的介绍都存在一定的问题,先上代码,再细说:
>>> x=[1,2,3]
>>> y=[4,5,6]
>>> a=zip(x,y)
>>> b=list(a)
>>> print(b)
[(1, 4), (2, 5), (3, 6)]
>>> c=zip(*b)
>>> print(c)
<zip object at 0x0000025B5B590048>
>>> print(list(c))
[(1, 2, 3), (4, 5, 6)]
-
zip()压缩
zip()内置函数的压缩功能是针对可迭代对象的,即函数中的参数必须是可迭代对象,如
a=zip(x,y)
x,y都是可迭代的,但压缩之后获得的是zip对象,如
print(c)
的结果 -
zip()解压缩
解压缩的原理其实还是压缩,只不过压缩的对象是
*b
==>(1, 4), (2, 5), (3, 6)
也就是说:
c=zip(*b)
等同于
c=zip((1, 4), (2, 5), (3, 6))
这里的知识点是*的解包功能 ,那么解压缩的结果不言自明
但要注意的是:
解压缩的对象是b:
b=list(a)
而不是直接压缩的结果a,直接对a是无法解压的
网友评论