首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python enumerate遍历数组示范应用

2012-08-25 
Python enumerate遍历数组示例应用一般情况下对一个列表或数组既要遍历索引又要遍历元素时,会这样写:list

Python enumerate遍历数组示例应用

一般情况下对一个列表或数组既要遍历索引又要遍历元素时,会这样写:

list=["one","two","three"]for i in range (len(list)):    print i ,list[i]

?

是这种方法有些累赘,使用内置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

?

其中iter为迭代器,yield向返回值塞数据。

?

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

for index,text in enumerate(list)):   print index ,text

?

如果你要计算文件的行数,可以这样写:

count = len(open(path,"r").readlines())print count

?

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

count = 0for index,line in enumerate(open(path,"r")):    Pass   count += 1
?

另一个例子:

line 是个 string 包含 0 和 1,要把1都找出来:

#方法一def read_line(line):    sample = {}    n = len(line)    for i in range(n):        if line[i]!='0':            sample[i] = int(line[i])    return sample #方法二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'))
?

热点排行