python zip函数小结

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

 

posted @ 2018-03-29 16:58  酱测  阅读(624)  评论(0编辑  收藏  举报