Python中zip函數(shù)如何使用
介紹
zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的列表。
ps. 如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
例子
a = [1,2,3] b = [4,5,6] c = [4,5,6,7,8] zipped = zip(a,b) # 打包為元組的列表 # 輸出:[(1, 4), (2, 5), (3, 6)] zip(a,c) # 元素個數(shù)與最短的列表一致 # 輸出:[(1, 4), (2, 5), (3, 6)] zip(*zipped) # 與 zip 相反,*zipped 可理解為解壓,返回二維矩陣式 [(1, 2, 3), (4, 5, 6)]
zip函數(shù)接受任意多個(包括0個和1個)序列作為參數(shù),返回一個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)]
從這個結(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)]
從這個結(jié)果可以看出zip函數(shù)的長度處理方式。
3.示例3:
代碼如下:
x = [1, 2, 3] x = zip(x) print x
運(yùn)行的結(jié)果是:
代碼如下:
[(1,), (2,), (3,)]
從這個結(jié)果可以看出zip函數(shù)在只有一個參數(shù)時(shí)運(yùn)作的方式。
4.示例4:
代碼如下:
x = zip() print x
運(yùn)行的結(jié)果是:
代碼如下:
[]
從這個結(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)為這是一個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ù)傳遞給對應(yīng)函數(shù)(前提是對應(yīng)函數(shù)支持不定個數(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]生成一個列表的列表,它只有一個元素x
[x] * 3生成一個列表的列表,它有3個元素,[x, x, x]
zip(* [x] * 3)的意思就明確了,zip(x, x, x)
到此這篇關(guān)于Python中zip函數(shù)如何使用的文章就介紹到這了,更多相關(guān)Python中的zip函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python中zip函數(shù)用法詳解(全)
- python內(nèi)置函數(shù)zip詳解
- python 內(nèi)置函數(shù)-range()+zip()+sorted()+map()+reduce()+filter()
- python中zip()函數(shù)遍歷多個列表方法
- python中的 zip函數(shù)詳解及用法舉例
- Python中zip()函數(shù)的簡單用法舉例
- python3中zip()函數(shù)使用詳解
- Python zip()函數(shù)用法實(shí)例分析
- 淺談Python中的zip()與*zip()函數(shù)詳解
- Python中zip()函數(shù)用法實(shí)例教程
- zip在python中的用法小結(jié)
相關(guān)文章
python通過微信發(fā)送郵件實(shí)現(xiàn)電腦關(guān)機(jī)
這篇文章主要為大家詳細(xì)介紹了python通過微信發(fā)送郵件實(shí)現(xiàn)電腦關(guān)機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
使用Plotly Dash進(jìn)行儀表板設(shè)計(jì)的步驟和技巧
Plotly Dash 是一個基于 Python 的開源框架,可以幫助你快速而靈活地構(gòu)建交互式儀表板,本文將介紹使用 Plotly Dash 創(chuàng)建儀表板的步驟和一些技巧,并附上代碼實(shí)例來演示每個步驟,需要的朋友可以參考下2024-05-05
學(xué)習(xí)Python列表的基礎(chǔ)知識匯總
本文給大家匯總介紹了學(xué)習(xí)Python列表的一些基礎(chǔ)知識,有了這份python列表的資料,對大家初識Python列表會非常有幫助,希望大家喜歡2020-03-03
Windows系統(tǒng)中將Python添加到系統(tǒng)環(huán)境詳細(xì)圖文教程
當(dāng)在命令行使用python或pip指令時(shí),可能會遇到pip不是內(nèi)部命令的報(bào)錯,這通常是因?yàn)樵诎惭bPython時(shí)未將其添加至系統(tǒng)環(huán)境變量,或者有多個Python環(huán)境導(dǎo)致路徑不一致,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
基于Python實(shí)現(xiàn)繪制簡單動圖的示例詳解
動畫是一種高效的可視化工具,能夠提升用戶的吸引力和視覺體驗(yàn),有助于以富有意義的方式呈現(xiàn)數(shù)據(jù)可視化,本文的主要介紹在Python中兩種簡單制作動圖的方法,需要的可以了解下2023-10-10
python實(shí)現(xiàn)提取百度搜索結(jié)果的方法
這篇文章主要介紹了python實(shí)現(xiàn)提取百度搜索結(jié)果的方法,涉及Python網(wǎng)頁及字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-05-05
python語法學(xué)習(xí)print中f-string用法示例
這篇文章主要為大家介紹了python語法學(xué)習(xí)print中f-string用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮
這篇文章主要介紹了在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

