A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing)
, where thing is either an iterator or a sequence, returns a iterator that will return (0, thing [0])
, (1, thing [1])
, (2, thing [2])
, and so forth.
A common idiom to change every element of a list looks like this:
用法:在同时需要index 和 value 值得时候可以使用
line = [1,3,'dfd','jdjfjd']
for i in range(len(line)):
item = line[i]
print(i,"--->",item) #运行结果:
0 ---> 1
1 ---> 3
2 ---> dfd
3 ---> jdjfjd
等价于下列代码:
line = [1,3,'dfd','jdjfjd']
for i,item in enumerate(line):
print(i,"-------",item)
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'))