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) # 与 zip 相反,可理解为解压,返回二维矩阵式 [(1, 2, 3), (4, 5, 6)]
如果传的是这样,数组里放的是字符串,将拆分字符串
>>> s=[‘12a‘,‘123‘,‘234‘] >>> zip(*s) [(‘1‘, ‘1‘, ‘2‘), (‘2‘, ‘2‘, ‘3‘), (‘a‘, ‘3‘, ‘4‘)]
单个字符串:
>>> s=[‘1‘,‘1‘,‘2‘]
>>> zip(*s)
[(‘1‘, ‘1‘, ‘2‘)]
下面这样会出错
>>> l=[111,12,13] >>> zip(*l) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: zip argument #1 must support iteration