zip: python的打包函數,可將兩個或兩個以上的可迭代對象按下標對應打包爲一個個元組,得到一個新的以元組爲元素的可迭代對象。
實例如下:
- 打包
t1 = [1,2,3,4]
t2 = [5,6,7,8]
t3 = [9,10]
#迭代對象長度相同
print('長度相同時:',list(zip(t1,t2)))
#迭代對象長度不同
print('長度不同時:',list(zip(t1,t3)))
#多個迭代對象
print('多個迭代對象:',list(zip(t1,t2,t3)))
結果:
長度相同時: [(1, 5), (2, 6), (3, 7), (4, 8)]
長度不同時: [(1, 9), (2, 10)]
多個迭代對象: [(1, 5, 9), (2, 6, 10)]
小結: 長度相同時,生成的元組個數與任一可迭代對象相等;長度不同時,以最短的可迭代對象爲基準進行打包。
- 遍歷
a = [1,2,3,4]
b = [5,6,7,8]
c = [9,10,11,12]
for za,zb,zc in zip(a,b,c):
print('a裏面元素:',za,'b裏面元素:',zb,'c裏面元素:',zc)
結果:
a裏面元素: 1 b裏面元素: 5 c裏面元素: 9
a裏面元素: 2 b裏面元素: 6 c裏面元素: 10
a裏面元素: 3 b裏面元素: 7 c裏面元素: 11
a裏面元素: 4 b裏面元素: 8 c裏面元素: 12
小結: 使用for
循環進行遍歷
- 解壓
使用zip
打包後,相當於得到了一個壓縮包。如果想要恢復爲原先的可迭代對象,可以在打包對象前加*
進行解壓。
t1 = [1,2,3,4]
t2 = [5,6,7,8]
#使用*號進行解壓
z1 = zip(t2,t3)#得到打包對象
print('解壓結果:',list(zip(*z1)))
結果:
解壓結果: [(5, 6), (9, 10)]
小結: 在打包對象前加*
號可以進行解壓。返回的結果是一個二維矩陣樣式的可迭代對象。
博主其他文章推薦:
[1] 【python實用特性】-切片