reverse a deque in python

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.

📚 Data Science Programs By Skill Level

Introductory

Intermediate ⭐⭐⭐

Advanced ⭐⭐⭐⭐⭐

🔎 Find Data Science Programs 👨‍💻 111,889 already enrolled

Disclaimer: Data Science Parichay is reader supported. When you purchase a course through a link on this site, we may earn a small commission at no additional cost to you. Earned commissions help support this website and its team of writers.

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. He has experience working as a Data Scientist in the consulting domain and holds an engineering degree from IIT Roorkee. His hobbies include watching cricket, reading, and working on side projects.

Scroll to Top