Python 中enumerate的使用

2021-07-11 04:37:55 字數 1517 閱讀 8090

在索引迭代序列中我們可以通過range()和len()函式遍歷序列中的元素以及元素的下標:

>>> a = ['mary','had','a','littel','lamb']

>>> for i in range(len(a)):

print(i,a[i])

0 mary

1 had2a

3 littel

4 lamb

然而大部分情況下我們可以使用enumerate函式進行相同的操作:

enumerate函式用於遍歷序列中的元素以及它們的下標:

>>> 

for i,j in enumerate(('a','b','c')):#遍歷tuple,注意:兩層括號

print(i,j)

0 a1 b

2 c>>>

for i,j in enumerate([1,2,3]):#遍歷list

print(i,j)01

1223

>>>

for i ,j in enumerate():#遍歷dic

print(i,j)

0 a1 b

2 c>>>

for i,j in enumerate('abc'):#遍歷字串

print(i,j)

0 a1 b

2 c

同時,enumerate本身是乙個生成器函式,可以如下方式使用:

#本身是生成器

in [19]: enumerate('abcdef', 1)

out[19]: 0xa027360>

#生成帶有索引的元組的列表(一組記錄)

in [20]: list(enumerate('abcdef', 1))

out[20]: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f')]

#指定起始索引

in [21]: list(enumerate('abcdef', 10))

out[21]: [(10, 'a'), (11, 'b'), (12, 'c'), (13, 'd'), (14, 'e'), (15, 'f')]

#與itertools聯用,有特效

in [22]: from itertools import chain

in [23]: list(chain(enumerate('abcdef', 10)))

out[23]: [(10, 'a'), (11, 'b'), (12, 'c'), (13, 'd'), (14, 'e'), (15, 'f')]

#將索引與記錄合併

in [24]: list(chain.from_iterable(enumerate('abcdef', 10)))

out[24]: [10, 'a', 11, 'b', 12, 'c', 13, 'd', 14, 'e', 15, 'f']

python中的zip和enumerate函式

迭代工具函式 作用是生成乙個個性化的可迭代物件 zip iter1 iter2 返回乙個zip物件,此物件用於生成元組,此元組的每個資料 於引數中的可迭代物件,當最小的可迭代物件不再提供資料時迭代結束 enumerate iterable start 生成帶索引的列舉物件,返回的迭代型別為索引 值對...

python內建函式 列舉 enumerate

enumerate 函式用於將乙個可便利的資料物件 如列表 元組或字串 組合成乙個索引序列,同時列出資料和資料下表,一般在for迴圈中使用 enumerate sequence,start n 返回enumerate 列舉 物件 返回enumerate 列舉 的乙個物件 lst 登入 註冊 退出 r...

Python內建函式 26 enumerate

英文文件 enumerate iterable,start 0 return an enumerate object.iterable must be a sequence,an iterator,or some other object which supports iteration.the n...