首頁常見問題正文

zip()函數(shù)的作用是什么?

更新時(shí)間:2023-02-23 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  zip()屬于拉鏈函數(shù),該函數(shù)在運(yùn)算的時(shí)候,會(huì)以一個(gè)或多個(gè)序列(可迭代對象)作為參數(shù),返回一個(gè)元組的列表,與此同時(shí)把這些序列中并排的元素配對。zip()參數(shù)可以接受任何類型的序列,同時(shí)也可以有兩個(gè)以上的參數(shù);當(dāng)傳入?yún)?shù)的長度不同時(shí),zip能自動(dòng)以最短序列長度為準(zhǔn)進(jìn)行截取,獲得元組。最后返回由這些元組組成的對象,這樣做的好處是節(jié)約了不少的內(nèi)存。

  可以使用list()轉(zhuǎn)換來輸出列表。如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長度與最短的對象相同,利用*號(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è)對象

  >>>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]

  >>>


分享到:
在線咨詢 我要報(bào)名
和我們在線交談!