A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , where thing is either an iterator or a sequence, retu ...
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'))