用Python进行遍历时,一般都在一个列表或string里用for loop从左往右进行循环,但有时出于算法的考虑,我们需要从右往左遍历。这时候就是reversed loop派上用场了。根据loop对象不同,主要有三种情况:
- 直接用内嵌函数reversed(list)
for i in reversed(list obj)
- 用列表对象的索引index定位
n = len(list)
for i in list[::-1]
这里的两个冒号其实是省略了两个参数,完整形式是:
n = len(list)
for i in list[n-1::-1]
特别要注意第二个冒号前的那个缺省值,如果什么都不填,则一直遍历到列表的index=0的位置;如果填0,则默认一直遍历到列表的index =1的位置,如果填1,则默认一直遍历到列表的index =2的位置,依次往后。
而第一个冒号前的那个缺省值,默认是从index = n-1的位置(列表末位)开始数起,填几就从第几号索引开始。甚至可以填比n-1大的值,但是也还是从最后一位开始遍历。
- 用range()写法
for i in range(n, m, -1)
即从n值开始倒数,一直数到m+1停止。