python zip函數小結
阿新 • • 發佈:2018-03-29
出錯 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函數小結