Skip to Content

Python – Reverse a deque

In this tutorial, we will look at how to reverse a deque (reverse the order of elements in a deque) in Python with the help of some examples.

deque in Python

The collections module in Python comes with a deque class that you can use to implement a stack or queue data structure in Python. Deques support thread-safe, memory efficient appends and pops from either side of the deque with approximately the same O(1) performance in either direction.

In simple terms, you can think of a deque in Python as a list-like data structure but with efficient insertion and removal of items from either end (left and right). This makes them very useful when implementing a stack or queue functionality in Python.

How to reverse a deque in Python?

reverse a deque in python

The deque class comes with a number of built-in functions to help perform common operations (like adding and removing elements).

To reverse the order of elements in a deque in Python, use the deque reverse() function. The following is the syntax –

# reverse deque "queue"
queue.reverse()

It reverses a deque in-place and does not return any value (returns None).

Time complexity of the deque reverse() function

The time complexity to reverse a deque using the deque reverse() function is O(N) where N is the size of the deque.

If you look at the cpython implementation of the collections module deque reverse() function (at line 922), you’ll find that the algorithm takes a two-pointer approach and swaps the first element with the last element, the second element with the second-last element, and so on to reverse a deque. This comes out to O(N/2) time complexity which is the same as O(N) time complexity.

Examples

Let’s now look at some examples of using the above syntax –

Example 1 – Reverse a non-empty deque

First, let’s create a deque with some elements.

from collections import deque

# create a deque
queue = deque([1, 2, 3])
# print the deque
print(queue)

Output:

deque([1, 2, 3])

Here, we imported the deque class from the collections module and created a deque object, queue with three elements – 1, 2, and 3.

Now, let’s now reverse the deque created above.

# reverse the deque
queue.reverse()
# print the deque
print(queue)

Output:

deque([3, 2, 1])

Here, we used the deque reverse() function to reverse the order of the elements in the deque queue.

Example 2 – Reverse a non-empty bounded deque

Let’s now create a bounded deque (deque object with a specified maxlen which defines the maximum number of values that it can store).

# create a bounded deque
queue = deque([1, 2, 3], maxlen=4)
# print the deque
print(queue)

Output:

deque([1, 2, 3], maxlen=4)

Here, we created a bounded deque with maxlen 4 and three elements inside it. Now, let’s reverse the elements from this deque using the reverse() function.

# reverse the deque
queue.reverse()
# print the deque
print(queue)

Output:

deque([3, 2, 1], maxlen=4)

The elements in the bounded deque are now reversed.

You might also be interested in –


Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.


Author

  • Piyush Raj

    Piyush is a data professional passionate about using data to understand things better and make informed decisions. In the past, he's worked as a Data Scientist for ZS and holds an engineering degree from IIT Roorkee. His hobbies include watching cricket, reading, and working on side projects.