1. 程式人生 > >python zip函數小結

python zip函數小結

出錯 support must lin spa gpo ack 最短 str

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

python zip函數小結