0
0
PythonHow-ToBeginner · 3 min read

How to Reverse a List in Python: Simple Methods Explained

To reverse a list in Python, use the list.reverse() method to reverse the list in place, or use slicing with list[::-1] to create a reversed copy. Both ways are simple and effective depending on whether you want to modify the original list or keep it unchanged.
📐

Syntax

There are two common ways to reverse a list in Python:

  • In-place reversal: list.reverse() reverses the original list directly.
  • Reversed copy: list[::-1] creates a new list that is the reversed version of the original.
python
my_list.reverse()  # reverses the list in place

reversed_list = my_list[::-1]  # creates a new reversed list
💻

Example

This example shows both methods: reversing the original list and creating a reversed copy without changing the original.

python
my_list = [1, 2, 3, 4, 5]

# In-place reversal
my_list.reverse()
print("After reverse():", my_list)

# Create a reversed copy
original_list = [1, 2, 3, 4, 5]
reversed_copy = original_list[::-1]
print("Original list:", original_list)
print("Reversed copy:", reversed_copy)
Output
After reverse(): [5, 4, 3, 2, 1] Original list: [1, 2, 3, 4, 5] Reversed copy: [5, 4, 3, 2, 1]
⚠️

Common Pitfalls

One common mistake is expecting list.reverse() to return a new reversed list. It actually returns None because it changes the list in place.

Another mistake is using slicing but forgetting it creates a new list, so the original list remains unchanged.

python
my_list = [1, 2, 3]
reversed_list = my_list.reverse()
print(reversed_list)  # This prints None, not the reversed list

# Correct way:
my_list.reverse()
print(my_list)  # Now the list is reversed
Output
None [3, 2, 1]
📊

Quick Reference

MethodDescriptionModifies Original ListReturns
list.reverse()Reverses the list in placeYesNone
list[::-1]Creates a reversed copy of the listNoNew reversed list

Key Takeaways

Use list.reverse() to reverse a list in place without creating a new list.
Use slicing list[::-1] to get a reversed copy while keeping the original list unchanged.
list.reverse() returns None, so don’t assign its result to a variable expecting a reversed list.
Slicing creates a new list, so it uses more memory than in-place reversal.
Choose the method based on whether you want to keep or change the original list.