【python實用特性】- zip函數

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實用特性】-切片

[2] 【python實用特性】- 迭代、可迭代對象、迭代器

[3] 【python實用特性】- 列表生成式

[4] 【python實用特性】- yield生成器

[5] Python+selenium實現自動爬取實例

[6] python爬取豆瓣Top250-改進版

[7] requests 設置請求頭、代理

[8] requests使用cookie模擬登陸豆瓣

[9] requests使用session保持會話

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章