在索引迭代序列中我們可以通過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...