Python Reverse List Using reverse() reversed() and Slicing

Sometimes in a project or some kind of application we need to reverse our existing Python List. In layman language reversing can be defined as from the end to the beginning. So that what is first becomes last and what is last becomes first. In Python or other Programming Language, Python Reverse List means the same. The first element of the list becomes the last element of the Python List. And the last element of Python list becomes the first.

In Python to reverse a list, we have generally four ways. But the best way to achieve the Python Reverse list is by using the reverse() function. The other three ways to reverse a list in Python are (i) Using the reversed() built-in function. (ii) By using the slicing technique. (iii) By using the iterative approach or loops. So now let’s start our tutorial to reverse a list in Python.

Reversing a List in Python using the reverse() Function

Python list class comes with the default reverse() function that inverts the order of items in the given list. It doesn’t create a new list object instead straightway modifies the original copy.

It is the most recommended way to transpose the list both from speed and performance perspective.

So we can say reverse() is an inbuilt method in Python programming language that reverses objects of the list in place.

Syntax of reverse() function:

list_name.reverse()

Here list_name will be that list whose reverse you want.

Parameters in reverse()

The reverse() function in Python doesn’t take any argument.

Return Value of reverse() Function in Python

The reverse() method does not return any value in python but reverse the given object from the list.

Time Complexity

O(n)

Examples Python Reverse List Using reverse() Function

Let’s see some examples to reverse the Python List using the reverse() function.

Example 1: Basic Example to Reverse a list in Python using the reverse()

#List of Countries
countries = ['India', 'USA', 'China', 'Japan', 'UK']
print('Original List of Countries:', countries)

# List Reverse
countries.reverse()

# updated list
print('Updated List of Countries:', countries)

Output:

Original List of Countries: ['India', 'USA', 'China', 'Japan', 'UK']
Updated List of Countries: ['UK', 'Japan', 'China', 'USA', 'India']
Basic Example to Reverse a list in Python using the reverse()

In this example, we add some elements in the list and call the reverse() method. It just reverses the elements based on their positions.

Example 2: Example to Reverse an Empty List

In this example, we are trying to check what happens when we apply reverse() function in an empty list.

# Creating a list  
list1 = []  
# Method calling  
list1.reverse() # Reverse elements of the list  
print(list1)

Output:

[]

So we concluded it returns an empty list if the list is the list is empty.

Example 3: Using Python reverse() Function to Reverse a String

So in this example, we will check whether the reverse() functions work in a Python string or not.

# Python program to demonstrate the reverse() function in string 

mystring = "redlabel"
mystring.reverse() 
print(mystring) 

Output:

Python program to demonstrate the reverse() function in string

Note:

  • Every list object in python has a method called reverse() that you can call a list object and it will reverse the list in place.
  • This means we don’t need to create a new list to copy these elements to a new list but instead you can modify the original list.
  • So this is very fast because it happens in a place and doesn’t take up any extra memory.
  • However, it modifies the existing list.

Reversing a List in Python using the List Slicing

The second way is a trick that applies to other iterables in Python. This way is extended slice; see an example below.

The difference between the reverse method and slicing is, the list remains unchanged after reversing as using the second way. In the case of list reverse Python method, the list order is changed i.e. the original list is reversed.

def reverse_list(list):
    reversed_list = list[::-1]
    print('Old Original list :', list)
    print('New Reversed list:', reversed_list)
  
number_list = [11, 22, 33, 44, 55]
string_list = ['India', 'USA', 'China', 'Japan', 'UK']
reverse_list(number_list)
reverse_list(string_list)

Output:

Old Original list : [11, 22, 33, 44, 55]
New Reversed list: [55, 44, 33, 22, 11]

Old Original list : ['India', 'USA', 'China', 'Japan', 'UK']
New Reversed list: ['UK', 'Japan', 'China', 'USA', 'India']

Explanation:

Slicing creates a shallow copy of the original list taking up more memory in comparison with the in-place reversal. As it creates a copy it requires more space to hold all the existing elements.

The point to note here is that structure of the list is replicated and not the contained objects i.e elements in a list. Hence, the elements are not duplicated thus saving space. Also, only the references in the structure holding addresses of objects are updated. As mutability applies to the elements contained in a list. If the object is modified it will be reflected in other copies as well.

Advantages of Using Slicing to Reverse a List

Slicing is fast. But it is difficult to understand decreasing readability of code as you go through the code. Since it is fast its developer’s responsibility to use appropriate options depending on the scenario.

Disadvantages of Using Slicing to Reverse a List

Understanding the script which is written using slicing could be time-consuming and difficult to visualize. The syntax is complex and doesn’t give a clear picture of what it is doing.

Reversing a List in Python Creating a Reverse Iterator With the Reversed() Built-in Function

The reversed() function in Python allows us to process the items in a sequence in reverse order. It accepts a sequence and returns an iterator.

Syntax of reversed() in Python:

reversed(sequence) -> reverse iterator

Parameters

ParameterDescription
sequence Sequence to be reversed.

Returning Value or Type of reversed() Function :

returns an iterator that accesses the given sequence in the reverse order.

Examples to Python Reverse List Using reversed Function

Example 1:

my_list = [1, 2, 4, 3, 5]
print(list(reversed(my_list)))

Output:

[5, 3, 4, 2, 1]

Example 2: Accessing Individual Elements in Reversed Order

If you need to access individual elements of a list in reverse order, it’s better to use reversed() method in Python.

# Countries Name List
countries = ['India', 'USA', 'China']

# Printing Elements in Reversed Order
for c in reversed(countries):
    print(c)

Output:

China
USA
India

Reversing a List in Python using the Loops

Example1: Using the Fore Loop to Reverse Python List

Instead of using inbuilt function reverse() on sequences, we will use for loop to reverse a list.

#initializing and creating the list
aList = [True, 26, 'Pool', 'Python', 'India']
 
#copying original list is merely for size
reversedList = aList.copy()
len = len(aList)
 
#reverse list using for loop
for i in range(0,len):
    reversedList[i] = aList[len-i-1]
 
#printing the lists
print('Original List\n',aList)
print('New Reversed List\n',reversedList)

Output:

Original List
 [True, 26, 'Pool', 'Python', 'India']
New Reversed List
 ['India', 'Python', 'Pool', 26, True]

Must Read:

How to Convert String to Lowercase in Python
How to Calculate Square Root in Python
Python User Input | Python Input () Function | Keyboard Input
Best Book to Learn Python in 2020

Application of Reversing a List

  • You change the order of a sorted list by just reversing the list. If the list is already sorted in ascending order, then by reversing the list, you get descending order.

What to Choose Between reverse() and Slicing

Extended slice syntax of Python iterator or sequence is the most preferable method to reverse a list. Although, It is the fastest method to reverse the list or any kind of iterator and most of the programmers use this method. It is not easy to understand for some beginner level programmer. list.reverse() is clear and readable for all level of programmers but it comes in computational cost. If your iterator or sequence is small in size then you may not notice any difference. It all depends on personal choice but it should follow the standards.

Conclusion

We have discussed four ways to Python reverse a list. All of them are good and easy to follow. But now the question is that which is to be used, so my answer is that “it totally depends upon situation”. You can opt for any one from them according to your problem’s needs. You can either use reverse() method, reversed() method, list slicing trick or you can also reverse the list without using any built-in function. All have their upside and downside so my suggestion is that you choose anyone which are best suited for your solution.

Always Remember:

When we reverse items, we change their order. Note that reversing should not be confused with sorting in descending order. 

If you still have any doubts or suggestions do let us know in the comment section below.

Happy Coding!

Leave a Reply