Python中的zip函數(shù)使用示例
zip函數(shù)接受任意多個(gè)(包括0個(gè)和1個(gè))序列作為參數(shù),返回一個(gè)tuple列表。具體意思不好用文字來表述,直接看示例:
1.示例1:
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print xyz
運(yùn)行的結(jié)果是:
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
從這個(gè)結(jié)果可以看出zip函數(shù)的基本運(yùn)作方式。
2.示例2:
x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy
運(yùn)行的結(jié)果是:
[(1, 4), (2, 5), (3, 6)]
從這個(gè)結(jié)果可以看出zip函數(shù)的長(zhǎng)度處理方式。
3.示例3:
x = [1, 2, 3]
x = zip(x)
print x
運(yùn)行的結(jié)果是:
[(1,), (2,), (3,)]
從這個(gè)結(jié)果可以看出zip函數(shù)在只有一個(gè)參數(shù)時(shí)運(yùn)作的方式。
4.示例4:
x = zip()
print x
運(yùn)行的結(jié)果是:
[]
從這個(gè)結(jié)果可以看出zip函數(shù)在沒有參數(shù)時(shí)運(yùn)作的方式。
5.示例5:
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
u = zip(*xyz)
print u
運(yùn)行的結(jié)果是:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
一般認(rèn)為這是一個(gè)unzip的過程,它的運(yùn)行機(jī)制是這樣的:
在運(yùn)行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
那么,zip(*xyz) 等價(jià)于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))
所以,運(yùn)行結(jié)果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
注:在函數(shù)調(diào)用中使用*list/tuple的方式表示將list/tuple分開,作為位置參數(shù)傳遞給對(duì)應(yīng)函數(shù)(前提是對(duì)應(yīng)函數(shù)支持不定個(gè)數(shù)的位置參數(shù))
6.示例6:
x = [1, 2, 3]
r = zip(* [x] * 3)
print r
運(yùn)行的結(jié)果是:
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
它的運(yùn)行機(jī)制是這樣的:
[x]生成一個(gè)列表的列表,它只有一個(gè)元素x
[x] * 3生成一個(gè)列表的列表,它有3個(gè)元素,[x, x, x]
zip(* [x] * 3)的意思就明確了,zip(x, x, x)
相關(guān)文章
Python數(shù)據(jù)存儲(chǔ)之XML文檔和字典的互轉(zhuǎn)
這篇文章主要介紹了Python數(shù)據(jù)存儲(chǔ)之XML文檔和字典的互轉(zhuǎn),通過如何將一個(gè)字典轉(zhuǎn)換為XML文檔,并將該XML文檔保存為文本文件的提問展開主題相關(guān)介紹,需要的朋友可以參考一下下面文章內(nèi)容2022-06-06
Python3中延時(shí)變量和 free_list鏈表的區(qū)別解析
這篇文章主要介紹了Python3中延時(shí)變量和 free_list鏈表的區(qū)別,在Python3中,"延時(shí)變量" 和 "free_list鏈表" 是兩個(gè)不同的概念,他們之間沒有直接聯(lián)系,本文給實(shí)例相結(jié)合給大家講解的非常詳細(xì),需要的朋友可以參考下2023-04-04
Pytorch中的Tensorboard與Transforms搭配使用
這篇文章主要介紹了Pytorch中的Tensorboard與Transforms搭配使用,主要是結(jié)合了前兩篇文章的的一個(gè)小練習(xí),感興趣的小伙伴可以來練習(xí)一下,希望對(duì)你的學(xué)習(xí)有所幫助2021-12-12
使用TensorFlow創(chuàng)建生成式對(duì)抗網(wǎng)絡(luò)GAN案例
這篇文章主要為大家介紹了使用TensorFlow創(chuàng)建生成式對(duì)抗網(wǎng)絡(luò)GAN案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
詳解Python網(wǎng)絡(luò)框架Django和Scrapy安裝指南
這篇文章主要介紹了詳解Python網(wǎng)絡(luò)框架Django和Scrapy安裝指南,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
解決pycharm不能自動(dòng)補(bǔ)全第三方庫(kù)的函數(shù)和屬性問題
這篇文章主要介紹了解決pycharm不能自動(dòng)補(bǔ)全第三方庫(kù)的函數(shù)和屬性問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python Matplotlib庫(kù)實(shí)現(xiàn)畫局部圖
這篇文章主要為大家詳細(xì)介紹了Python Matplotlib庫(kù)實(shí)現(xiàn)畫局部圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11

