久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python基礎:理解enumerate函數和zip函數

 hercules028 2022-05-02 發(fā)布于四川

excelperfect

標簽:Python,,enumerate函數zip函數

本文將通過幾個示例介紹Python中的enumerate()函數和zip()函數,。

enumerate()函數返回迭代iterables(列表,、字典、集等)中所有項的索引,,而zip()函數用于聚合或組合多個迭代,。

enumerate函數

Python中的enumerate()函數用于檢索迭代中所有項的索引。迭代是Python中的項的集合,,如列表,、字典和集。

雖然可以使用index()函數獲取迭代中某個項的索引,,但index()函數只返回該項第一次出現的索引,。例如,在下面腳本中的nums列表中,,整數20出現三次,。如果試圖打印整數20的索引,將只看到第一次出現的20的索引,,即索引位置2,。

nums= [10,15,20,25,30,14,20,19,34,14,20,12]

index_20= nums.index(20)

print(index_20)

結果如下圖1所示。

Image

1

使用enumerate()函數,可以獲取所有項的索引,,即使它們在列表中出現多次,。enumerate()函數的作用是:返回“enumerate”類型的對象,如下面腳本的輸出所示,。

type_enum= type(enumerate(nums))

print(type_enum)

結果如下圖2所示,。

Image

2

enumerate()函數的作用是:返回兩個項目的元組,其中第一個項目對應于索引,,而第二個項目對應于相應迭代中的實際項目,。可以將enumerate()函數返回的對象轉換為包含索引和相應項的元組列表,,如下所示:

print(list(enumerate(nums)))

輸出結果如下圖3所示,。

Image

3

現在,可以看到nums列表中的所有索引及其對應項,。注意,,還可以看到多次出現的項的索引,例如整數2014,。

可以使用for循環(huán)遍歷enumerate()函數返回的元組,,如下面的代碼所示,其中第一個元組項通過索引0訪問,,而第二個元組項通過索引1訪問,。

for i in enumerate(nums):

    print('索引=>',i[0],' - =>',i[1])

結果如下圖4所示。

Image

4

還可以使用元組解包直接訪問enumerate()函數返回的元組中的索引和項,。下面是一個例子:

for i,j in enumerate(nums):

    print('索引=>',i,' - =>',j)

結果如下圖5所示,。

Image

5

作為另一個示例,下面的腳本演示了如何使用enumerate()函數獲取“nums”列表中整數20的所有索引,。

for i in enumerate(nums):

    if i[1] == 20:

        print(' =>',i[1],' - 索引 =>',i[0])

結果如下圖6所示,。

Image

6

還可以通過向start參數傳遞一個值來重置enumerate()返回的元組的起始索引。例如,,下面的腳本將8設置為enumerate()函數返回的元組列表的起始索引值,。

for i in enumerate(nums, start = 8):

    print('索引=>',i[0], ' - =>', i[1])

結果如下圖7所示。

Image

7

zip函數

Python中的zip()函數用于聚合多個迭代,。zip函數的作用是:返回一個元組列表,,其中每個元組包含來自原始迭代的匹配索引的項。

下面的腳本包含三個列表:names,、agesgenders,,每個列表有5項。這些列表通過zip()函數聚合,。如果打印zip()函數返回的元組列表,,將看到每個元組項都包含來自原始列表中匹配索引的項,。例如,第一個元組包含三個項:“john”,,20,,“male”。這三項分別出現在names,、agesgenders列表的第0個索引中。

names= ['john', 'nick', 'sally','Elizabeth', 'Mike']

ages= [20, 25, 35, 22, 29]

genders= ['male', 'male', 'female', 'female','male']

records= list(zip(names, ages, genders))

print(records)

結果如下圖8所示,。

Image

8

正如在enumerate()函數中看到的那樣,,可以使用元組解包從zip()函數返回的元組中獲取單個項。下面是一個例子:

for name, age, gender in zip(names, ages, genders):

    print('姓名=>',name, ' - 年齡=>', age, ' -性別=>',gender)

結果如下圖9所示,。

Image

9

在某些情況下,,使用zip()函數聚合或組合的迭代包含數量不等的項。在這種情況下,,只有來自多個迭代的項與最小迭代中的項相對應,,才會進行聚合。

例如,,在下面的腳本中,,genders列表只包含2項。在以下情況下,,使用zip()函數聚合names,、agesgenders列表將只返回兩個元組,其中包含names,、agesgenders列表的第0個和第1個索引中的項,。

names= ['john', 'nick', 'sally','Elizabeth', 'Mike']

ages= [20, 25, 35, 22, 29]

genders= ['male', 'male']

records= list(zip(names, ages, genders))

print(records)

結果如下圖10所示。

Image

10

enumeratezip組合

還可以對zip()函數返回的輸出調用enumerate()函數,。在這種情況下,,enumerate()函數將返回元組,其中元組中第一個索引處的項將對應于zip()函數返回的元組的索引,,第二個索引處的項將對應于zip()函數返回的實際元組,。下面是一個示例。

names= ['john', 'nick', 'sally', 'Elizabeth','Mike']

ages= [20, 25, 35, 22, 29]

genders= ['male', 'male', 'female', 'female','male']

for i, record in enumerate(zip(names, ages, genders)):

    print('索引=>',i, ' -姓名=>', record[0], ' -年齡=>',record[1], ' -性別=>', record[2])

結果如下圖11所示,。

Image

11

注意,,現在有一個列表的表,其中包含一個關聯(lián)的索引,。

注:本文學習整理自wellsr.com,,供有興趣的朋友參考。

歡迎在下面留言,,完善本文內容,,讓更多的人學到更完美的知識,。

歡迎到知識星球:完美Excel社群,進行技術交流和提問,,獲取更多電子資料,,并通過社群加入專門的微信討論群,更方便交流,。

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多