日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python中zip()函数的解释和可视化

發(fā)布時(shí)間:2025/3/8 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中zip()函数的解释和可视化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章來(lái)源于機(jī)器學(xué)習(xí)算法與Python實(shí)戰(zhàn),作者愛(ài)學(xué)習(xí)的胡同學(xué)

zip()的作用

先看一下語(yǔ)法:

zip(iter1 [,iter2 [...]]) —> zip object

Python的內(nèi)置help()模塊提供了一個(gè)簡(jiǎn)短但又有些令人困惑的解釋:

返回一個(gè)元組迭代器,其中第i個(gè)元組包含每個(gè)參數(shù)序列或可迭代對(duì)象中的第i個(gè)元素。當(dāng)最短的可迭代輸入耗盡時(shí),迭代器將停止。使用單個(gè)可迭代參數(shù),它將返回1元組的迭代器。沒(méi)有參數(shù),它將返回一個(gè)空的迭代器。

與往常一樣,當(dāng)您精通更一般的計(jì)算機(jī)科學(xué)和Python概念時(shí),此模塊非常有用。但是,對(duì)于初學(xué)者來(lái)說(shuō),這段話(huà)只會(huì)引發(fā)更多問(wèn)題。讓我們嘗試通過(guò)示例,代碼片段和可視化來(lái)解釋zip()功能:從許多迭代中獲取元素,然后…… 放在一起

我們可以通過(guò)幾個(gè)列表來(lái)演示zip()的功能:

uppercase = ['A', 'B', 'C'] lowercase = ['a', 'b', 'c']for x, y in zip(uppercase, lowercase):print(x, y)

輸出:

A a B b C c

但是,不限于兩個(gè)可迭代對(duì)象作為參數(shù)傳遞-我們可以添加任意多個(gè):

uppercase = ['A', 'B', 'C'] lowercase = ['a', 'b', 'c'] numbers = [1, 2, 3]for x, y, z in zip(uppercase, lowercase, numbers):print(x, y, z)

這將輸出:

A a 1 B b 2 C c 3

讓我們直觀地看一下該zip()函數(shù)在Python中的工作方式:

zip()函數(shù)的另一個(gè)重要警告是如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同:

uppercase = ['A', 'B', 'C', 'D', 'E'] lowercase = ['a', 'b', 'c', 'd'] numbers = [1, 2, 3]for x, y, z in zip(uppercase, lowercase, numbers):print(x, y, z)

輸出:

A a 1 B b 2 C c 3

正如我們所看到的,即使列出了三個(gè)三元組,uppercase和lowercase列表具有5和4個(gè)元素。

要知道的重要一件事是zip()函數(shù)返回什么。

盡管似乎在調(diào)用此函數(shù)時(shí)會(huì)得到一個(gè)列表,但實(shí)際上它返回一個(gè)稱(chēng)為zip object的特殊數(shù)據(jù)類(lèi)型,這意味著使用索引將無(wú)法瀏覽,下面我們學(xué)習(xí)如何將其轉(zhuǎn)換為其他數(shù)據(jù)類(lèi)型(例如列表)。

在此之前,我們還應(yīng)再來(lái)學(xué)習(xí)一下迭代(Iteration)、迭代器對(duì)象(iterable)、迭代器(iterator )的概念:

  • Iteration是計(jì)算機(jī)科學(xué)的通用術(shù)語(yǔ)。它是指對(duì)一組元素執(zhí)行一項(xiàng)操作,一次執(zhí)行一個(gè)元素。一個(gè)很好的例子是循環(huán) -它適用于每個(gè)單獨(dú)的項(xiàng)目,直到整個(gè)項(xiàng)目集運(yùn)行完畢為止。

  • Iterable是可以遍歷的對(duì)象(譯者注:在Python中所有東西都是object, 比如說(shuō)變量,容器,類(lèi)),iterable是可以產(chǎn)生iterator的object。

  • iterator是表示數(shù)據(jù)流的對(duì)象,它一次返回一個(gè)元素的數(shù)據(jù)。它還會(huì)記住其在迭代過(guò)程中的位置。本質(zhì)上,它控制應(yīng)如何迭代可迭代對(duì)象

將zip()對(duì)象轉(zhuǎn)換為列表(并使用索引)

zip()函數(shù)返回一個(gè)zip對(duì)象(類(lèi)似于map()操作方式)。

zip對(duì)象提供了一些有趣的功能(迭代速度比list更快),但是我們經(jīng)常需要將其轉(zhuǎn)換為list。為了做到這一點(diǎn),我們需要調(diào)用list()函數(shù):

b = ["red", "green", "blue"] c = ["leopard", "cheetah", "jaguar"]print(list(zip(b, c)))

輸出:

[('red', 'leopard'), ('green', 'cheetah'), ('blue', 'jaguar')]

list()函數(shù)將zip對(duì)象轉(zhuǎn)換為一個(gè)元組列表。我們可以使用索引瀏覽各個(gè)元組。出于可讀性考慮,我們首先將新列表分配給一個(gè)變量:

b = ["red", "green", "blue"] c = ["leopard", "cheetah", "jaguar"] new_list = list(zip(b, c)) print(new_list[0]) print(new_list[1]) print(new_list[2])

這將輸出:

('red', 'leopard') ('green', 'cheetah') ('blue', 'jaguar')

將zip()對(duì)象轉(zhuǎn)換成字典

另外,該dict()函數(shù)可用于將zip對(duì)象轉(zhuǎn)換為字典。需要注意的是,只能使用兩個(gè)zip()參數(shù)-前者產(chǎn)生key,后者產(chǎn)生value:

b = ["red", "green", "blue"] f = ["strawberry", "kiwi", "blueberry"]print(dict(zip(b, f)))

輸出:

{'red': 'strawberry', 'green': 'kiwi', 'blue': 'blueberry'}

解壓列表

在某些情況下,我們需要執(zhí)行相反的操作——解壓迭代器。解壓操作涉及將壓縮后的元素恢復(fù)為其原始狀態(tài)。為此,我們添加*運(yùn)算符到函數(shù)調(diào)用中。例:

a = [1, 2, 3] b = [4, 5, 6] zipped = zip(a, b) list(zipped)a2, b2 = zip(*zip(a, b)) print(a == list(a2) and b == list(b2))

輸出:

True

Zip與列表生成式(for循環(huán)潛在問(wèn)題)

zip()函數(shù)與Python中的for循環(huán)一起使用的可視化

在應(yīng)用for循環(huán)后注意缺少的元素!

Python的另一個(gè)很棒的功能——列表推導(dǎo)式,可以與zip()函數(shù)結(jié)合使用。表面上看起來(lái)很簡(jiǎn)單……

m = ["mind", "mouse", "mini"] n = ["norm", "night", "necklace"][print(a, b) for a, b in zip(m, n)]

輸出:

mind norm mouse night mini necklace

看起來(lái)很簡(jiǎn)單,似乎沒(méi)有任何錯(cuò)誤,對(duì)嗎?是的

如果我們想a從列表生成式獲取參數(shù)并打印出來(lái),我們得到a NameError的報(bào)錯(cuò)提示,這是完全正常的,因?yàn)閍在列表推導(dǎo)之外不是實(shí)數(shù):

Traceback (most recent call last):File "C:\Pro\Py\tp-ex\tmp1.py", line 5, in print(a) NameError: name 'a' is not defined

但是,如果我們決定使用for循環(huán)而不是列表生成式,然后打印a,我們會(huì)得到一些奇怪的結(jié)果。請(qǐng)記住,for循環(huán)輸出的結(jié)果與列表生成式的結(jié)果相同。

m = ["mind", "mouse", "mini"] n = ["norm", "night", "necklace"]for m, n in zip(m, n):print(m, n)print(m)

結(jié)果輸出是…

mind norm mouse night mini necklace mini

等等,叛逆的mini在這里干什么?事實(shí)證明,m先前引用的列表變量"mind", "mouse", "mini"被覆蓋了!因此,應(yīng)該牢記列表生成式和for循環(huán)的運(yùn)行方式完全不同。

結(jié)論

事實(shí)證明,zip()函數(shù)在 Python 中確實(shí)有一些竅門(mén)!????與往常一樣,鼓勵(lì)大家實(shí)際使用我們的代碼示例,而不僅是閱讀本文。如果您與代碼進(jìn)行交互并對(duì)其進(jìn)行調(diào)整,則肯定會(huì)遇到一些獨(dú)特的問(wèn)題-解決它們將幫助大家更好地掌握知識(shí)。

原文:https://blog.soshace.com/python-zip-function-explained-and-visualized/

By?Denis Kryukov?

備注:公眾號(hào)菜單包含了整理了一本AI小抄非常適合在通勤路上用學(xué)習(xí)

往期精彩回顧2019年公眾號(hào)文章精選適合初學(xué)者入門(mén)人工智能的路線(xiàn)及資料下載機(jī)器學(xué)習(xí)在線(xiàn)手冊(cè)深度學(xué)習(xí)在線(xiàn)手冊(cè)AI基礎(chǔ)下載(第一部分)備注:加入本站微信群或者qq群,請(qǐng)回復(fù)“加群”加入知識(shí)星球(4500+用戶(hù),ID:92416895),請(qǐng)回復(fù)“知識(shí)星球”

喜歡文章,點(diǎn)個(gè)在看

總結(jié)

以上是生活随笔為你收集整理的Python中zip()函数的解释和可视化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久免费视频99 | 欧美午夜精品久久久 | 中文日韩字幕 | 丰满少妇一区二区三区 | 日韩中文字幕在线 | 日韩影院一区二区 | 网站久久久 | 成人免费性生活视频 | 黄色免费观看网站 | 国产无套精品一区二区 | av男人网 | 在线观看的网站 | 成人免费高清在线观看 | 亚洲AV无码成人精品国产一区 | www.日批| 亚洲一卡二卡三卡四卡 | 亚洲日日骚 | 无码人妻aⅴ一区二区三区玉蒲团 | 日韩国产欧美在线视频 | 精品国产aⅴ一区二区三区四川人 | 丁香花电影免费播放电影 | 欧美成人午夜精品免费 | 伊人久久大香线蕉综合75 | 在线看污片 | 综合久久综合久久 | 国产妇女馒头高清泬20p多 | 特大黑人巨交吊性xxxx视频 | 毛片a区| 精品电影在线观看 | 欧美第二区 | 国产理论一区 | 男男av网站 | 中国男人操女人 | 麻豆免费视频网站 | 亚洲一区中文字幕永久在线 | 欧美aⅴ视频| 日韩欧美亚洲一区二区三区 | 日韩精品视频在线看 | www.久久久久久久久 | 日本在线观看视频网站 | 色吟av| 国产欧美日本 | 免费激情网站 | 女同一区 | 欧美另类xxxxx | 亚洲一区二区三区电影在线观看 | 亚洲黄片一区 | 美女搡bbb又爽又猛又黄www | 免费黄色三级 | 精品亚洲中文字幕 | 在线免费观看av网址 | 中文字幕av久久爽一区 | 曰韩av| 性免费网站 | 潘金莲三级野外 | 青春草视频在线免费观看 | 日本韩国欧美在线 | 一边吃奶一边摸做爽视频 | 天天色天天草 | 无码一区二区波多野结衣播放搜索 | 污视频免费在线观看网站 | 后入内射欧美99二区视频 | 99视频一区 | 视频日韩| 网址在线观看你懂的 | 91免费视频黄 | 波多野吉衣在线视频 | av网站免费播放 | av天堂一区二区三区 | 成人天堂网 | 青青草原成人网 | 国产日韩欧美高清 | 亚洲情射 | 精品视频在线播放 | 日韩欧美卡一卡二 | 中文字幕一区二区三区人妻电影 | 高级家教课程在线观看 | 精品国产一二三区 | 91大神精品在线 | 一级黄色免费观看 | 亚洲精品国产精品乱码视色 | 91最新在线| 亚洲成人福利在线 | 空姐吹箫视频大全 | 羞羞影院体验区 | 亚洲天堂av在线播放 | 日本免费www | 极品人妻一区二区三区 | 欧美午夜一区二区 | 曰批视频在线观看 | 国产精品老牛影视 | 国模杨依粉嫩蝴蝶150p | 黑人精品一区二区 | 性色免费视频 | 特级丰满少妇一级aaaa爱毛片 | 精品视频在线播放 | 中文字幕人妻精品一区 | 国产成人精品视频 | 在线看b|