HiveBrain v1.2.0
Get Started
← Back to all entries
patternpythonCritical

Traverse a list in reverse order in Python

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
listorderpythontraversereverse

Problem

How do I traverse a list in reverse order in Python? So I can start from collection[len(collection)-1] and end in collection[0].

I also want to be able to access the loop index.

Solution

Use the built-in reversed() function:

>>> a = ["foo", "bar", "baz"]
>>> for i in reversed(a):
...     print(i)
... 
baz
bar
foo


To also access the original index, use enumerate() on your list before passing it to reversed():

>>> for i, e in reversed(list(enumerate(a))):
...     print(i, e)
... 
2 baz
1 bar
0 foo


Since enumerate() returns a generator and generators can't be reversed, you need to convert it to a list first.

Code Snippets

>>> a = ["foo", "bar", "baz"]
>>> for i in reversed(a):
...     print(i)
... 
baz
bar
foo
>>> for i, e in reversed(list(enumerate(a))):
...     print(i, e)
... 
2 baz
1 bar
0 foo

Context

Stack Overflow Q#529424, score: 1824

Revisions (0)

No revisions yet.