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.

Answer from Greg Hewgill on Stack Overflow
๐ŸŒ
GitHub
github.com โ€บ python โ€บ cpython โ€บ issues โ€บ 124178
Support `enumerate` with `reversed` function ยท Issue #124178 ยท python/cpython
September 17, 2024 - lst = ["foo", "bar"] for i, data in reversed(enumerate(lst)): print(i, data)
Author ย  muddyfish
Discussions

How can I search backwards through a list without actually reversing the list order?
You can iterate backwards, with the correct indices, like this: for i,x in reversed(list(enumerate(numbers))): You can skip the first value, starting from the end, by using a set to keep track of values once you've seen them, and quickly checking it to see if it's already been seen. It's somewhat traditional to name this set "seen". More on reddit.com
๐ŸŒ r/learnpython
17
9
April 18, 2021
Why does [::-1] reverse a list?
[Start:stop:step] if you're going in steps by negative one, you're going backwards More on reddit.com
๐ŸŒ r/learnpython
57
187
March 12, 2022
๐ŸŒ
Python.org
discuss.python.org โ€บ ideas
Backward enumerator - Ideas - Discussions on Python.org
December 16, 2024 - Currently python provides enumerate(Iterable) for forward enumeration. The API returns a generator of tuples of index and item. However, there lacks a builtin function to enumerate from the back of a Sequence (Iterable plus len and getitem). Currently the most popular solution on StackOverflow is reversed(list(enumurate(...))) (reference to this post).
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ backward-iteration-in-python
Backward iteration in Python - GeeksforGeeks
July 11, 2025 - a = [10, 20, 30, 40, 50] #Loop through the list #using reversed() to reverse the order of list for b in reversed(a): print(b) ... Let's explore more methods that helps to iterate backward on any iterable. Here are some common approaches: ... range function is provided with three arguments(N, -1, -1). Use this method when we need to modify elements or access their indices. ... s = "Python" # - len(s) - 1: Start at the last index # - -1: Ensures the loop stops after the first character # - -1: The step value to iterate backwards for i in range(len(s) - 1, -1, -1): print(s[i])
๐ŸŒ
Coursera
coursera.org โ€บ tutorials โ€บ enumerate-python
How to Enumerate in Python: Step by Step | Coursera
1 2 3 4 5 enumerated_languages ... value in reversed_languages: print(index, value) The enumerate function adds a counter to an iterable and returns it as an enumerate object....
๐ŸŒ
W3Schools
w3schools.com โ€บ python โ€บ ref_list_reverse.asp
Python List reverse() Method
The built-in function reversed() returns a reversed iterator object. ... If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail: sales@w3schools.com ยท If you want to report an error, or if you want to make a suggestion, send us an e-mail: help@w3schools.com ยท HTML Tutorial CSS Tutorial JavaScript Tutorial How To Tutorial SQL Tutorial Python Tutorial W3.CSS Tutorial Bootstrap Tutorial PHP Tutorial Java Tutorial C++ Tutorial jQuery Tutorial
Find elsewhere
๐ŸŒ
Real Python
realpython.com โ€บ python-reverse-list
Reverse Python Lists: Beyond .reverse() and reversed() โ€“ Real Python
June 28, 2023 - The call to enumerate() provides ascending zero-based indices for each item in the reversed copy. That allows you to modify numbers during the iteration. Then the loop modifies the numbers by replacing each item with its square value.
๐ŸŒ
DataCamp
datacamp.com โ€บ tutorial โ€บ python-reverse-list
Python Reverse List: How to Reorder Your Data | DataCamp
February 27, 2025 - If you're starting your Python ... concepts like list handling and data structures. The easiest way to reverse a list in Python is using slicing ([::-1]), which creates a new reversed list without modifying the original:...
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ python-reversing-list
Reversing a List in Python - GeeksforGeeks
This method builds a reversed version of the list using slicing with a negative step. ... Python's built-in reversed() function is another way to reverse the list.
Published ย  November 26, 2025
๐ŸŒ
Python.org
discuss.python.org โ€บ python help
Beginner question: assigning variable to list.reverse() - Python Help - Discussions on Python.org
May 12, 2022 - Any idea why assigning variable Y to this does not result in anything? create a list of prime numbers x = [2, 3, 5, 7] reverse the order of list elements y=x.reverse() print(y)
๐ŸŒ
Python Morsels
pythonmorsels.com โ€บ looping-in-reverse
Looping in reverse - Python Morsels
May 27, 2025 - If we wanted to write a for loop that iterated over our list from the end to the beginning, we could loop over the reversed slice of that list: >>> for color in colors[::-1]: ... print("I like", color) ... I like red I like pink I like green I like blue I like purple ยท But this only works for sequences (meaning iterables that can be indexed). Also, it looks a little bit weird. ... Lists in Python have a reverse method.
๐ŸŒ
Note.nkmk.me
note.nkmk.me โ€บ home โ€บ python
Reverse a List, String, Tuple in Python: reverse, reversed | note.nkmk.me
August 16, 2023 - t_reversed = t[::-1] print(t_reversed) # (5, 4, 3, 2, 1) ... List vs. Array vs. numpy.ndarray in Python
๐ŸŒ
Vultr Docs
docs.vultr.com โ€บ python โ€บ standard-library โ€บ list โ€บ reverse
Python List Reverse() - Reverse List Order | Vultr Docs
November 7, 2024 - The reverse() method in Python is a straightforward and efficient way to reverse the order of elements in a list.
๐ŸŒ
Codecademy
codecademy.com โ€บ article โ€บ how-to-reverse-a-list-in-python
How to Reverse a List in Python | Codecademy
Learn how to reverse a list in Python using `.reverse()`, `reversed()`, slicing, the two-pointer method, loops, and recursion with examples.
๐ŸŒ
Medium
medium.com โ€บ becoming-a-better-software-developer โ€บ undetstanding-python-iterators-reversed-iteration-35f1c1d16196
Undetstanding Python Iterators: Reversed Iteration | by Saleem Latif | Becoming a better Software Developer | Medium
March 8, 2023 - In the above example, we are reverse iterating over a list of numbers using the reversed() function. The for loop iterates over the reversed list and prints each element in reverse order.
๐ŸŒ
Towards Data Science
towardsdatascience.com โ€บ home โ€บ latest โ€บ how to reverse python lists more efficiently
How To Reverse Python Lists More Efficiently | Towards Data Science
January 20, 2025 - It specifies a negative step size of 1, which means that the element are retrieved in the reversed order (from end to start) If you would like to understand more about slicing and indexing in Python, you can refer to one of my previous articles, here on Medium.
๐ŸŒ
Stack Abuse
stackabuse.com โ€บ bytes โ€บ traversing-a-list-in-reverse-order-in-python
Traversing a List in Reverse Order in Python
August 30, 2023 - Traversing a list in reverse order is a common operation in Python, and there are several ways to achieve this. The reversed() function and list slicing are Pythonic methods that are simple and readable, while a for loop with range() gives you more control over the iteration.