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
🌐
Real Python
realpython.com › python-reverse-list
Reverse Python Lists: Beyond .reverse() and reversed() – Real Python
June 28, 2023 - For example, to reverse the list represented in the diagram, you can loop over the first half of the list and swap the element at index 0 with its mirror at index -1 in the first iteration.
Discussions

python - How do I reverse a list or loop over it backwards? - Stack Overflow
From a speed perspective, it is best to use the above built-in functions to reverse a list. For reversing, they are 2 to 8 times faster on short lists (10 items), and up to ~300+ times faster on long lists compared to a manually-created loop or generator. This makes sense - they are written ... More on stackoverflow.com
🌐 stackoverflow.com
Iterate trough reverse list?
list.reverse() reverses the list in place and returns None. So for i in l.reverse(): is the same as for i in None:. You already figured out one solution. The other one is reversed(l), which will return the reversed list. More on reddit.com
🌐 r/learnpython
3
3
December 4, 2021
python - Reverse list using for loop - Stack Overflow
I used the above code to reverse a list but I was wondering why is the range(len(my_list)) necessary, more specifically, why doesn't it work if I simply put "for i in my_list:"? ... Because they're different code, they (often) have different behavior. What do you expect? ... Save this answer. ... Show activity on this post. #use list ... More on stackoverflow.com
🌐 stackoverflow.com
Why isn't my loop iterating backwards in python?
Hint: Look up documentation on the ‘range’ function…does it actually do what you think it does given the two arguments you provided? Maybe you’re missing an argument? https://docs.python.org/3/library/stdtypes.html#range More on reddit.com
🌐 r/learnprogramming
13
0
March 8, 2023
🌐
GeeksforGeeks
geeksforgeeks.org › python › backward-iteration-in-python
Backward iteration in Python - GeeksforGeeks
July 11, 2025 - We can use slicing slicing notation [::-1] to reverse the order of elements in an iterable. This works for lists, tuples, and strings, but not for sets or dictionaries (since they are unordered).
🌐
Codecademy
codecademy.com › article › how-to-reverse-a-list-in-python
How to Reverse a List in Python | Codecademy
In the first approach, reversed() is used with list() to create a new reversed list. In the second approach, reversed() is used directly in a for loop to iterate through elements in reverse order without creating a new list.
🌐
GeeksforGeeks
geeksforgeeks.org › python › python-reversing-list
Reversing a List in Python - GeeksforGeeks
However, reversed() returns an iterator, so it needs to be converted back into a list. ... If we want to reverse a list manually, we can use a loop (for loop) to build a new reversed list.
Published   May 29, 2026
🌐
Stack Abuse
stackabuse.com › bytes › traversing-a-list-in-reverse-order-in-python
Traversing a List in Reverse Order in Python
August 30, 2023 - Python has a built-in function called reversed() that returns a reverse iterator. An iterator is an object that contains a countable number of values and can be iterated (looped) upon. Here's a quick example: my_list = [1, 2, 3, 4, 5] for i in reversed(my_list): print(i)
🌐
Python Morsels
pythonmorsels.com › looping-in-reverse
Looping in reverse - Python Morsels
May 27, 2025 - To loop in the reverse direction, you can use Python's built-in reversed function: >>> colors = ["purple", "blue", "green", "pink", "red"] >>> for color in reversed(colors): ... print("I like", color) ...
Find elsewhere
🌐
TutorialKart
tutorialkart.com › python › python-reverse-list-using-for-loop
How to Reverse a List using For Loop in Python?
April 6, 2023 - #initialize list myList = ['apple', 'banana', 'cherry', 'mango'] #store reversed list in this reversedList = [] #reverse list using for loop for i in range(len(myList)) : reversedList.append(myList[len(myList) - i - 1]) #print lists print(f'Original List : {myList}') print(f'Reversed List : {reversedList}') ... Original List : ['apple', 'banana', 'cherry', 'mango'] Reversed List : ['mango', 'cherry', 'banana', 'apple'] ... In this Python Tutorial, we learned how to reverse a list using for loop.
🌐
Delft Stack
delftstack.com › home › howto › python › python iterate list backwards
How to Iterate List Backwards in Python | Delft Stack
March 13, 2025 - One of the simplest ways to iterate through a list backwards is by using the built-in reversed() function. This function returns an iterator that accesses the given list in reverse order.
🌐
Medium
geekpython.medium.com › 8-ways-to-reverse-the-elements-in-a-python-list-ad50889bdd7e
8 Ways To Reverse The Elements In A Python List | by Sachin Pal | Medium
November 25, 2022 - Python reversed() function is also used to reverse the elements inside the list. Still, instead of returning the reversed object, it returns the reversed iterator object that accesses the values of a given sequence.
🌐
datagy
datagy.io › home › python posts › how to reverse a python list (6 ways)
How to Reverse a Python List (6 Ways) • datagy
February 15, 2023 - Let’s take a look at what this looks like: # Reverse a Python list with a List Comprehension original_list = [1,2,3,4,5,6,7,8,9] start = len(original_list) - 1 reversed_list = [original_list[i] for i in range(start, -1, -1)] print(reversed_list) # ...
🌐
FavTutor
favtutor.com › blogs › reverse-list-python
Reverse Python List (9 Easy Ways) | FavTutor
March 30, 2022 - Create an empty list to copy the reversed elements. In the for loop, add the iterator as a list element at the beginning with the new list elements. So in that way, the list elements will be reversed.
🌐
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 - >>> my_lst = [10, 0, 30, 25, 40, 100, 80] >>> my_lst_reverse_iter = reversed(my_lst) >>> my_lst_reverse_iter <list_reverseiterator object at 0x10afcae20> As you can see, the reversed() function returned an Iterator we can loop over it: >>> for ...
🌐
Python Help
pythonhelp.org › python-lists › how-to-reverse-a-list-in-python-using-for-loop
Reversing a List in Python Using For Loop
October 24, 2023 - Below is an example of how you could reverse a list: # Define original list original_list = ['a', 'b', 'c'] # Reverse the list with for loop reversed_list = [] for i in range(len(original_list) -1, -1, -1): #range starts from the end and goes ...
🌐
Python Guides
pythonguides.com › reverse-a-list-in-python
How to Reverse a List in Python
September 30, 2025 - It’s a nice balance between readability and performance. Use reverse() when you want to reverse the list in place. Use slicing when you want a quick one-liner that returns a new list. Use reversed() when you need an iterator or want to keep the original intact.
🌐
Linuxize
linuxize.com › home › python › python list reverse
Python List reverse | Linuxize
August 25, 2020 - Below is an example using reversed() to loop over the elements of list in reversed order: python · numbers = [1, 2, 3, 4] for i in reversed(numbers) : print(i) output · 4 3 2 1 · If you want to convert the reversed iterator into a list, use the list() constructor: python ·
🌐
JanBask Training
janbasktraining.com › community › python-python › how-do-i-reverse-a-list-or-loop-over-it-backwards
How do I reverse a list or loop over it backwards? | JanBask Training Community
June 4, 2025 - Python offers built-in features that make this process clean and readable. ... The reversed() function returns an iterator that yields the elements of the list in reverse order. my_list = [1, 2, 3, 4, 5] for item in reversed(my_list): print(item)