更新時間:2023-02-23 來源:黑馬程序員 瀏覽量:
zip()屬于拉鏈函數(shù),該函數(shù)在運算的時候,會以一個或多個序列(可迭代對象)作為參數(shù),返回一個元組的列表,與此同時把這些序列中并排的元素配對。zip()參數(shù)可以接受任何類型的序列,同時也可以有兩個以上的參數(shù);當(dāng)傳入?yún)?shù)的長度不同時,zip能自動以最短序列長度為準(zhǔn)進(jìn)行截取,獲得元組。最后返回由這些元組組成的對象,這樣做的好處是節(jié)約了不少的內(nèi)存。
可以使用list()轉(zhuǎn)換來輸出列表。如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用*號操作符,可以將元組解壓為列表。
zip方法在Python2和Python3中也是存在區(qū)別的:在Python2中,zip()返回的是一個列表,在Python3中,zip()返回的是一個迭代器。
以下實例展示了zip的使用方法:
>>>a=[1,2,3] >>>b=[4,5,6] >>>c=[4,5,6,7,8] >>>zipped=zip(a,b) # 返回一個對象 >>>zipped >>>list(zipped) #list() 轉(zhuǎn)換為列表 [(1,4),(2,5),(3,6)] >>>list(zip(a,c)) # 元素個數(shù)與最短的列表一致 [(1,4),(2,5),(3,6)] >>>a1,a2=zip(*zip(a,b)) # 與zip相反,zip(*)可理解為解壓,返回二維矩陣式 >>>list(a1) [1,2,3] >>>list(a2) [4,5,6] >>>