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   python
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
🌐
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 = tuple(enumerate(languages, 1)) reversed_languages = reversed(enumerated_languages) for index, value in reversed_languages: print(index, value) The enumerate function adds a counter to an iterable and returns it as an enumerate object. Enumerate has two parameters: the iterable and the start value. You can use enumerate with any iterable in Python.
🌐
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).
Find elsewhere
🌐
Real Python
realpython.com › python-reverse-list
Reverse Python Lists: Beyond .reverse() and reversed() – Real Python
June 28, 2023 - For example, say you need to iterate over a list of numbers in reverse order and replace every number with its square value. In this case, you can do something like this: ... >>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> for i, number in ...
🌐
Mimo
mimo.org › glossary › python › list-reverse-method
Python List reverse() Method: Syntax, Methods, and Examples
The underlying name comes from the behavior of a built-in reversed mechanism, which is powered by a built-in function. When dealing with large lists and lazy evaluation. Suitable for for-loops and iterators. You can reverse a list using enumerate in a custom loop.
🌐
DataCamp
datacamp.com › tutorial › python-reverse-list
Python Reverse List: How to Reorder Your Data | DataCamp
February 27, 2025 - The -1 step moves through the list in reverse order. In Python, reversing a list means changing the order of elements so that the last item appears first and the first item appears last.
🌐
W3Schools
w3schools.com › python › ref_list_reverse.asp
Python List reverse() Method
Python Examples Python Compiler ... Plan Python Interview Q&A Python Bootcamp Python Training ... The reverse() method reverses the sorting order of the elements....
🌐
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   May 29, 2026
🌐
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.
🌐
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.
🌐
Note.nkmk.me
note.nkmk.me › home › python
Reverse a List, String, Tuple in Python: reverse, reversed | note.nkmk.me
August 16, 2023 - In Python, you can reverse a list using the reverse() method, the built-in reversed() function, or slicing. To reverse a string (str) and a tuple, use reversed() or slicing. Reverse a list using the r ...
🌐
Codecademy
codecademy.com › article › how-to-reverse-a-list-in-python
How to Reverse a List in Python | Codecademy
To enhance your understanding of Python concepts and dive into more advanced topics, check out the Learn Intermediate Python 3 course from Codecademy. Yes! You can use slicing ([::-1]), reversed(), a for loop, or recursion to reverse a list without using .reverse().
🌐
Medium
medium.com › becoming-a-better-software-developer › undetstanding-python-iterators-reversed-iteration-35f1c1d16196
Understanding Python Iterators: Reversed Iteration | by Saleem Latif | Becoming a better Software Developer | Medium
May 12, 2026 - Reversed iteration is a technique that allows you to iterate over a sequence of elements in reverse order. In Python, you can reverse iterate over a sequence by using the reversed() function.
🌐
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.