在python中enumerate的用法多用于在for循环中得到计数,
enumerate参数为可遍历的变量,如 字符串,列表等; 返回值为enumerate类。
示例代码如下所示:
import string
s = string.ascii_lowercase
e = enumerate(s)
print s
print list(e)
输出结果如下:
abcdefghijklmnopqrstuvwxyz
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j'), (10, 'k'), (11, 'l'), (12, 'm'), (13, 'n'), (14, 'o'), (15, 'p'), (16, 'q'), (17, 'r'), (18, 's'), (19, 't'), (20, 'u'), (21, 'v'), (22, 'w'), (23, 'x'), (24, 'y'), (25, 'z')]
在同时需要index和value值的时候可以使用 enumerate。下列分别将字符串,数组,列表与字典遍历序列中的元素以及它们的下标:
一,字符串:
for i,j in enumerate('abc'):
print i,j
输出结果为:
0 a
1 b
2 c
二,数组:
for i,j in enumerate(('a','b','c')):
print i,j
输出结果为:
0 a
1 b
2 c
三,列表:
for i,j in enumerate([1,2,3]):
print i,j
输出结果为:
0 1
1 2
2 3
四,字典:
for i,j in enumerate({'a':1,'b':2}):
print i,j
输出结果为:
0 a
1 b
enumerate应用实例:
该实例中,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'))