Python中zip()函數(shù)用法及應(yīng)用場(chǎng)景詳解
Python中的
zip()
函數(shù)是一個(gè)非常有用的內(nèi)建函數(shù),用于將多個(gè)可迭代對(duì)象(例如:列表、元組、字典等)聚合成一個(gè)元組,返回由這些元組組成的對(duì)象。
1. zip()用法
1.1 基本用法
zip()
函數(shù)用于將多個(gè)可迭代對(duì)象中的元素按位置組合成元組。下面是一個(gè)基本的示例:
a = [1,2,3] b = ["a", "b", "c"] c = zip(a, b) for i in c: print(i)
代碼輸出:
(1, 'a')
(2, 'b')
(3, 'c')
1.2 不等長(zhǎng)的可迭代對(duì)象
如果輸入可迭代對(duì)象長(zhǎng)度不同,zip()
會(huì)根據(jù)最短的可迭代對(duì)象來(lái)進(jìn)行壓縮,多余的元素將會(huì)被丟棄:
list1 = [1, 2, 3] list2 = ('a', 'b') result = zip(list1, list2) print(list(result))
代碼輸出:
[(1, 'a'), (2, 'b')]
可以看到,list1 中的 3 被丟棄,因?yàn)?list2 長(zhǎng)度為 2。
1.3 多個(gè)可迭代對(duì)象
zip()
支持多個(gè)可迭代對(duì)象??梢詫⑺鼈儼错樞蚪M合在一起
list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] list3 = [True, False, True] result = zip(list1, list2, list3) print(list(result))
代碼輸出:
[(1, 'a', True), (2, 'b', False), (3, 'c', True)]
1.4 zip和字典
如果傳入的可迭代對(duì)象是字典,zip()
會(huì)按鍵進(jìn)行配對(duì)。因此,通常會(huì)結(jié)合 dict()
使用來(lái)創(chuàng)建字典。
keys = ['name', 'age', 'city'] values = ['Alice', 25, 'New York'] result = zip(keys, values) dictionary = dict(result) print(dictionary)
代碼輸出:
{'name': 'Alice', 'age': 25, 'city': 'New York'}
1.5 解壓zip
zip()
生成的結(jié)果是一個(gè)迭代器, 對(duì)于已經(jīng)壓縮的數(shù)據(jù)我們可以使用 zip(*iterables)
來(lái)進(jìn)行解壓縮操作
list1 = [1, 2, 3] list2 = ('a', 'b', 'c') result = zip(list1, list2) # 解壓 unpacked = zip(*result) print(list(unpacked))
代碼輸出:
[(1, 2, 3), ('a', 'b', 'c')]
2. zip() 應(yīng)用場(chǎng)景
2.1 并行遍歷多個(gè)序列
zip()
函數(shù)常用于并行遍歷多個(gè)序列,在循環(huán)中挨個(gè)取出每一個(gè)序列中對(duì)應(yīng)元素的位置
names = ['Alice', 'Bob', 'Charlie'] ages = [25, 30, 35] for name, age in zip(names, ages): print(f"{name} is {age} years old.")
2.2 構(gòu)建字典
如前所述,zip()
和 dict()
結(jié)合使用可以非常方便的創(chuàng)建字典
keys = ['name', 'age', 'city'] values = ['Alice', 25, 'New York'] result = dict(zip(keys, values)) print(result)
2.3 用于矩陣轉(zhuǎn)置
在某些情況下,zip()
可以用于矩陣轉(zhuǎn)置等操作。例如,將多個(gè)行合并為列,或?qū)⒍鄠€(gè)列合并為行:
matrix = [(1, 2, 3), (4, 5, 6), (7, 8, 9)] transposed = zip(*matrix) print(list(transposed))
代碼輸出:
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
總結(jié)
到此這篇關(guān)于Python中zip()函數(shù)用法及應(yīng)用場(chǎng)景詳解的文章就介紹到這了,更多相關(guān)Python zip()函數(shù)詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一篇文章帶你深入學(xué)習(xí)Python函數(shù)
這篇文章主要帶大家深入學(xué)習(xí)Python函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01python中DataFrame常用的描述性統(tǒng)計(jì)分析方法詳解
這篇文章主要介紹了python中DataFrame常用的描述性統(tǒng)計(jì)分析方法詳解,描述性統(tǒng)計(jì)分析是通過(guò)圖表或數(shù)學(xué)方法,對(duì)數(shù)據(jù)資料進(jìn)行整理、分析,并對(duì)數(shù)據(jù)的分布狀態(tài)、數(shù)字特征和隨機(jī)變量之間的關(guān)系進(jìn)行估計(jì)和描述的方法,需要的朋友可以參考下2023-07-07如何在python開(kāi)發(fā)工具PyCharm中搭建QtPy環(huán)境(教程詳解)
這篇文章主要介紹了在python開(kāi)發(fā)工具PyCharm中搭建QtPy環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Python打包后的exe還原成.py的實(shí)現(xiàn)步驟
本文主要介紹了Python打包后的exe還原成.py的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02利用Python將list列表寫(xiě)入文件并讀取的方法匯總
因?yàn)閷?shí)驗(yàn)需要,實(shí)現(xiàn)了一下寫(xiě)入txt文件,下面這篇文章主要給大家介紹了關(guān)于如何利用Python將list列表寫(xiě)入文件并讀取的幾種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03利用Python腳本實(shí)現(xiàn)自動(dòng)刷網(wǎng)課
這篇文章主要介紹了利用Python腳本實(shí)現(xiàn)自動(dòng)刷網(wǎng)課,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Python+Selenium+Pytesseract實(shí)現(xiàn)圖片驗(yàn)證碼識(shí)別
這篇文章主要介紹了利用Python+Selenium+Pytesseract實(shí)現(xiàn)圖片驗(yàn)證碼識(shí)別,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-01-01