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