python函式每日一講 - enumerate函式

pythontab發表於2017-05-17

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


enumerate函式說明:

函式原型:enumerate(sequence, [start=0])

功能:將可迴圈序列sequence以start開始分別列出序列資料和資料下標

即對一個可遍歷的資料物件(如列表、元組或字串),enumerate會將該資料物件組合為一個索引序列,同時列出資料和資料下標。


舉例說明:

存在一個sequence,對其使用enumerate將會得到如下結果:

start sequence[0]

start+1  sequence[1]

start+2 sequence[2]......


適用版本:

Python2.3+

Python2.x


注意:在python2.6以後新增了start引數


英文解釋:

Return an enumerate object. sequence must be a sequence, an iterator, or some other object which supports iteration. The next() method of the iterator returned by enumerate() returns a tuple containing a count (from start which defaults to 0) and the values obtained from iterating over sequence。


程式碼例項:

enumerate引數為可遍歷的變數,如 字串,列表等; 返回值為enumerate類。

import string
s = string.ascii_lowercase
e = enumerate(s)
print s
print list(e)


輸出為:

abcdefghij
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j')]


在同時需要index和value值的時候可以使用 enumerate。

該例項中,line 是個 string 包含 0 和 1,要把1都找出來:

def xread_line(line):
  return((idx,int(val)) for idx, val in enumerate(line) if val != '0')
 
print read_line('0001110101')
print list(xread_line('0001110101'))


相關文章