Python reversed() Method

Last Updated : 17 Feb, 2026

reversed() function in Python returns an iterator that accesses elements in reverse order. It does not create a new reversed copy of the sequence, making it memory-efficient. It works with sequence types like lists, tuples, strings and ranges or any object that implements the __reversed__() method.

Example: In this example, a list is reversed using reversed() and converted into a list for display.

Python
a = ["nano", "swift", "bolero", "BMW"]
print(list(reversed(a)))

Output
['BMW', 'bolero', 'swift', 'nano']

Explanation: reversed(a) returns an iterator, list() converts the iterator into a list and the elements appear in reverse order.

Syntax

reversed(sequence) 

  • Parameters: sequence - An iterable object such as list, tuple, string or range.
  • Return Value: Returns an iterator that produces elements in reverse order.

Note: reversed() function does not work with sets because they are unordered collections.

Examples

Example 1: In this example, reversed() is applied to a tuple and a range object.

Python
t = ('g', 'e', 'e', 'k', 's')
r = range(1, 5)

print(list(reversed(t)))
print(list(reversed(r)))

Output
['s', 'k', 'e', 'e', 'g']
[4, 3, 2, 1]

Explanation: reversed(t) reverses tuple elements, reversed(r) reverses numbers produced by range(1, 5) and list() displays the reversed sequence.

Example 2: Here, reversed() is used inside a for loop to print characters of a string in reverse.

Python
s = "Python"

for ch in reversed(s):
    print(ch, end="")

Output
nohtyP

Example 3: In this example, a string is reversed and stored as a new string using join().

Python
s = "Geeks"
rev = "".join(reversed(s))
print(rev)

Output
skeeG

Explanation: reversed(s) returns an iterator of characters, "".join() combines them into a new reversed string and result is stored in rev.

Handling StopIteration in reversed()

When all elements from a reversed iterator are consumed, calling next() again raises a StopIteration exception. This exception can be handled using a try-except block to prevent the program from crashing.

Example 1: In this example, next() is called more times than the number of elements in the reversed iterator, which causes a StopIteration error.

Python
a = [1, 2, 3]
it = reversed(a)

print(next(it))
print(next(it))
print(next(it))
print(next(it))

Output

3
2
1
Traceback (most recent call last):
File "c:\Users\gfg0753\test.py", line 7, in <module>
print(next(it))
~~~~^^^^
StopIteration

Explanation: reversed(a) creates an iterator stored in it, first three next(it) calls return 3, 2 and 1 and the fourth next(it) call raises StopIteration because the iterator is exhausted.

Example 2: In this example, the StopIteration exception is handled using a try-except block to prevent the program from crashing.

Python
a = [1, 2, 3]
it = reversed(a)

try:
    while True:
        print(next(it))
except StopIteration:
    print("Iterator exhausted")

Output
3
2
1
Iterator exhausted

Explanation:

  • reversed(a) returns an iterator and next(it) retrieves elements one by one.
  • When no elements remain, StopIteration is raised.
  • The except StopIteration block catches the exception and prints a message.
Comment

Explore