在python的应用中,当我们使用一个数组或者列表的时候既要遍历索引又要遍历元素的时候通常的做法是这样的:

>>> lsi = [1,2,3,4,5,6,7,8,9]
>>> lsi
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for i in range(0,len(lsi)):
...     print i ,lsi[i]
... 
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
>>> 

使用 内置enumerrate函数会有更加直接,优美的做法,先看看enumerate的定义:

def enumerate (collection ): 
    'Generates an indexed series:  (0,coll[0]), (1,coll[1]) ...'       
     i = 0 
     it = iter (collection ) 
     while 1 : 
     yield (i , it . next ()) 
     i += 1 

enumerate会将数组或列表组成一个索引序列。使我们在获取索引和索引内容的时候更加方便。

演示如下:

>>> list
[1, 2, 3, 4, 5, 6, 7, 8, 9, 41, 56]
>>> for index,text in enumerate(list):
...     print index , text
... 
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 41
10 56
>>> 

在 cookbook里介绍,如果你要计算文件的行数,可以这样写:

count = len (open (thefilepath , ‘ rU ’ ). readlines ())

前面这种方法简单,但是可能比 较慢,当文件比较大时甚至不能工作,下面这种循环读取的方法更合适些。

Count = - 1 
For count , line in enumerate (open (thefilepath , ‘ rU ’ )): 
    Pass 
Count += 1