使用内置的reversed()
函数:
>>> a = ["foo", "bar", "baz"]
>>> for i in reversed(a):
... print(i)
...
baz
bar
foo
要访问原始索引,请在将其传递给reversed()
enumerate()
():
>>> for i, e in reversed(list(enumerate(a))):
... print(i, e)
...
2 baz
1 bar
0 foo
由于enumerate()
返回一个生成器,并且生成器无法反转,因此您需要先将list
你可以做:
for item in my_list[::-1]:
print item
(或者您想要在 for 循环中执行的任何操作。)
[::-1]
片在 for 循环中反转列表(但实际上不会 “永久” 修改您的列表)。
如果您需要循环索引,并且不想遍历整个列表两次,或者不想使用额外的内存,则可以编写一个生成器。
def reverse_enum(L):
for index in reversed(xrange(len(L))):
yield index, L[index]
L = ['foo', 'bar', 'bas']
for index, item in reverse_enum(L):
print index, item