zip() 函數用於將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回一個zip對象,可以有這個對象生產這些元組組成的列表(可以使用list)。
下面用一個例子來解釋:
a=zip([1,2,3],['a','b','c']) print(a) #<zip object at 0x02D1D4E0> print(list(a)) #[(1, 'a'), (2, 'b'), (3, 'c')]
上面其實可以看出一個打包的過程,對應的就有解包的方法,用'*'操作符可以實現解包:
a=zip([1,2,3],['a','b','c']) print(list(zip(*a))) # [(1, 2, 3), ('a', 'b', 'c')]
注意,zip返回的本質是一個生成器,如果利用list,或其他方法迭代后,生成器就是空的了。我們用上面的例子來說明這問題。
a=zip([1,2,3],['a','b','c']) print(list(a)) #[(1, 'a'), (2, 'b'), (3, 'c')] print(list(a)) #[] 因為上面已經把生成器使用了
另外當傳入的兩個參數的長度不同是,按短的進行處理:
a=zip([1,2,3,4],['a','b','c']) print(list(a)) #[(1, 'a'), (2, 'b'), (3, 'c')]