Python學(xué)習(xí)筆記之Zip和Enumerate用法實(shí)例分析
本文實(shí)例講述了Python Zip和Enumerate用法。分享給大家供大家參考,具體如下:
Python 中的 Zip
zip的作用:可以在處理循環(huán)時(shí)用到,返回一個(gè)將多個(gè)可迭代對(duì)象組合成一個(gè)元組序列的迭代器。每個(gè)元組都包含所有可迭代對(duì)象中該位置的元素。
my_zip = list(zip(['a', 'b', 'c'], [1, 2, 3])) print(my_zip) # [('a', 1), ('b', 2), ('c', 3)]
正如 range() 一樣,我們需要將其轉(zhuǎn)換為列表或使用循環(huán)進(jìn)行遍歷以查看其中的元素。
letters = ['a', 'b', 'c'] nums = [1, 2, 3] for letter, num in zip(letters, nums): print("{}: {}".format(letter, num))
輸出如下:
a: 1
b: 2
c: 3
除了可以將兩個(gè)列表組合到一起之外,還可以使用星號(hào)拆封列表,返回的是單個(gè)元組
some_list = [('a', 1), ('b', 2), ('c', 3)] letters, nums = zip(*some_list) print(letters) # ('a', 'b', 'c') print(nums) # (1, 2, 3)
Python 中的 Enumerate
enumerate 是一個(gè)會(huì)返回元組迭代器的內(nèi)置函數(shù),這些元組包含列表的索引和值。當(dāng)你需要在循環(huán)中獲取可迭代對(duì)象的每個(gè)元素及其索引時(shí),將經(jīng)常用到該函數(shù)。
示例代碼:
letters = ['a', 'b', 'c', 'd', 'e'] for i, letter in enumerate(letters): print(i, letter)
輸出如下:
0 a
1 b
2 c
3 d
4 e
Python 中的 Zip 和 Enumerate[相關(guān)練習(xí)]
使用 zip 寫(xiě)一個(gè) for 循環(huán),該循環(huán)會(huì)創(chuàng)建一個(gè)字符串,指定每個(gè)點(diǎn)的標(biāo)簽和坐標(biāo),并將其附加到列表 points。每個(gè)字符串的格式應(yīng)該為 label: x, y, z。例如,第一個(gè)坐標(biāo)的字符串應(yīng)該為 F: 23, 677, 4。
解決方案:
x_coord = [23, 53, 2, -12, 95, 103, 14, -5] y_coord = [677, 233, 405, 433, 905, 376, 432, 445] z_coord = [4, 16, -6, -42, 3, -6, 23, -1] labels = ["F", "J", "A", "Q", "Y", "B", "W", "X"] points = [] # write your for loop here for label, x, y, z in zip(labels, x_coord, y_coord, z_coord): points.append(label+": " + str(x) + ', ' + str(y) + ', ' + str(z)) for point in points: print(point)
輸出如下:
F: 23, 677, 4
J: 53, 233, 16
A: 2, 405, -6
Q: -12, 433, -42
Y: 95, 905, 3
B: 103, 376, -6
W: 14, 432, 23
X: -5, 445, -1
使用 zip 創(chuàng)建一個(gè)字段 cast,該字典使用 names 作為鍵,并使用 heights 作為值。
解決方案:
cast_names = ["Barney", "Robin", "Ted", "Lily", "Marshall"] cast_heights = [72, 68, 72, 66, 76] cast = dict(zip(cast_names,cast_heights)) print(cast)
輸出:
{'Barney': 72, 'Ted': 72, 'Robin': 68, 'Lily': 66, 'Marshall': 76}
將 cast 元組拆封成兩個(gè) names 和 heights 元組。
解決方案:
cast = (("Barney", 72), ("Robin", 68), ("Ted", 72), ("Lily", 66), ("Marshall", 76)) # define names and heights here names,heights = zip(*cast) print(names) # ('Barney', 'Robin', 'Ted', 'Lily', 'Marshall') print(heights) # (72, 68, 72, 66, 76)
使用 zip 將 data 從 4x3 矩陣轉(zhuǎn)置成 3x4 矩陣。
解決方案:
data = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11)) data_transpose = tuple(zip(*data)) print(data_transpose) # ((0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11))
使用 enumerate 修改列表 cast,使每個(gè)元素都包含姓名,然后是角色的對(duì)應(yīng)身高。例如,cast 的第一個(gè)元素應(yīng)該從 “Barney Stinson” 更改為 "Barney Stinson 72”。
解決方案:
cast = ["Barney Stinson", "Robin Scherbatsky", "Ted Mosby", "Lily Aldrin", "Marshall Eriksen"] heights = [72, 68, 72, 66, 76] for i, c in enumerate(cast): cast[i] += ' ' + str(heights[i]) print(cast) # ['Barney Stinson 72', 'Robin Scherbatsky 68', 'Ted Mosby 72', 'Lily Aldrin 66', 'Marshall Eriksen 76']
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python函數(shù)使用技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python調(diào)用C++,通過(guò)Pybind11制作Python接口
今天小編就為大家分享一篇關(guān)于Python調(diào)用C++,通過(guò)Pybind11制作Python接口,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10python爬蟲(chóng)之爬取筆趣閣小說(shuō)升級(jí)版
筆趣有很多起點(diǎn)中文網(wǎng)的小說(shuō),該網(wǎng)站小說(shuō)的更新速度稍滯后于起點(diǎn)中文網(wǎng)正版小說(shuō)的更新速度。并且該網(wǎng)站只支持在線瀏覽,不支持小說(shuō)打包下載。所以可以通過(guò)python爬取文本信息保存,從而達(dá)到下載的目的2021-09-09Pyecharts繪制可視化地球?qū)崿F(xiàn)示例
這篇文章主要為大家介紹了Pyecharts繪制可視化地球?qū)崿F(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Python關(guān)于excel和shp的使用在matplotlib
今天小編就為大家分享一篇關(guān)于Python關(guān)于excel和shp的使用在matplotlib,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01使用Python進(jìn)行Ping測(cè)試的操作指南
在網(wǎng)絡(luò)工程中,Ping測(cè)試是一種常用的網(wǎng)絡(luò)診斷工具,用于檢查網(wǎng)絡(luò)連接的可達(dá)性和響應(yīng)時(shí)間,隨著Python編程語(yǔ)言的廣泛應(yīng)用,越來(lái)越多的網(wǎng)絡(luò)工程師開(kāi)始使用Python進(jìn)行自動(dòng)化網(wǎng)絡(luò)測(cè)試和管理任務(wù),本篇文章將詳細(xì)介紹如何使用Python進(jìn)行Ping測(cè)試,需要的朋友可以參考下2024-06-06在Python中處理字符串之ljust()方法的使用簡(jiǎn)介
這篇文章主要介紹了在Python中處理字符串之ljust()方法的使用,是Python學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05