通常情况下我们在C++中遍历数组的方法为:
for(int i=0; i<list.length; i++)
{
//deal with list[i]
}
python中我们可以这样遍历数组(字符串、元组、列表等):
for item in sequence:
process(item)
这种方式,我们只获得sequence中的值,没有获得索引
for index in range(len(sequence)):
process(sequence[index])
这种方式可以获得索引以及对应的值。但是这显得很繁琐。python其实提供了内置的enumerate函数可以同时获得索引和值,可以这样实现:
for index, key in enumerate(sequence):
process(index, key)
如果你想对sequence中的元素作逆置后处理,可以:
for index, key in enumerate(sequence[::-1]):
process(index, key)
举例说明:
>>> seq = 'hello'
>>> for i,key in enumerate(seq):
... print 'seq[%d]=%s' % (i, key)
...
seq[0]=h
seq[1]=e
seq[2]=l
seq[3]=l
seq[4]=o
>>> seq = ['a','b','c','d']
>>> for i,key in enumerate(seq):
... print 'seq[%d]=%s' % (i, key)
...
seq[0]=a
seq[1]=b
seq[2]=c
seq[3]=d
>>> seq = ['a','b','c','d']
>>> for i,key in enumerate(seq[::-1]):
... print 'seq[%d]=%s' % (i, key)
...
seq[0]=d
seq[1]=c
seq[2]=b
seq[3]=a