在python中,迭代是获取元素本身,而非元素索引,那么,假如针对有序集合,想要获得元素索引,怎么办呢?
方法是,使用enumerate()函数:
例如:['a','b','c','d'],求输出结果为:
0:a
1:b
2:c
3:d
此时可以使用enumerate()函数,实际上enumerate()函数将该list变成了类似:
[(0,'a'),(1,'b'),(2,'c'),(3,'d')]
因此,迭代的实际是一个tuple
L=['a','b','c','d']
for x in enumerate(L):
index =x[0]
name = x[1]
print(index,':',name)
执行结果:
0 : a
1 : b
2 : c
3 : d
如果我们知道每个tuple包含两个元素,可以进一步简写为:
for index,name in enumerate(L):
print(index,':',name)
拓展
以上例题,可以用另外一种方法实现
思路:利用zip()和range()结合实现
已知:zip()可将两个list变成一个,如:zip([0,1,2,3],['A','B','C','D']),输出结果为:[(0,'A'),(1,'B'),(2,'C'),(3,'D')]
L = ['a', 'b', 'c', 'd']
for index, name in zip(range(1,5),L):
print index, ':', name
输出结果:
1 : a
2 : b
3 : c
4 : d