
- Python - Home
- Python - Overview
- Python - History
- Python - Features
- Python vs C++
- Python - Hello World Program
- Python - Application Areas
- Python - Interpreter
- Python - Environment Setup
- Python - Virtual Environment
- Python - Basic Syntax
- Python - Variables
- Python - Data Types
- Python - Type Casting
- Python - Unicode System
- Python - Literals
- Python - Operators
- Python - Arithmetic Operators
- Python - Comparison Operators
- Python - Assignment Operators
- Python - Logical Operators
- Python - Bitwise Operators
- Python - Membership Operators
- Python - Identity Operators
- Python - Operator Precedence
- Python - Comments
- Python - User Input
- Python - Numbers
- Python - Booleans
- Python - Control Flow
- Python - Decision Making
- Python - If Statement
- Python - If else
- Python - Nested If
- Python - Match-Case Statement
- Python - Loops
- Python - for Loops
- Python - for-else Loops
- Python - While Loops
- Python - break Statement
- Python - continue Statement
- Python - pass Statement
- Python - Nested Loops
- Python Functions & Modules
- Python - Functions
- Python - Default Arguments
- Python - Keyword Arguments
- Python - Keyword-Only Arguments
- Python - Positional Arguments
- Python - Positional-Only Arguments
- Python - Arbitrary Arguments
- Python - Variables Scope
- Python - Function Annotations
- Python - Modules
- Python - Built in Functions
- Python Strings
- Python - Strings
- Python - Slicing Strings
- Python - Modify Strings
- Python - String Concatenation
- Python - String Formatting
- Python - Escape Characters
- Python - String Methods
- Python - String Exercises
- Python Lists
- Python - Lists
- Python - Access List Items
- Python - Change List Items
- Python - Add List Items
- Python - Remove List Items
- Python - Loop Lists
- Python - List Comprehension
- Python - Sort Lists
- Python - Copy Lists
- Python - Join Lists
- Python - List Methods
- Python - List Exercises
- Python Tuples
- Python - Tuples
- Python - Access Tuple Items
- Python - Update Tuples
- Python - Unpack Tuples
- Python - Loop Tuples
- Python - Join Tuples
- Python - Tuple Methods
- Python - Tuple Exercises
- Python Sets
- Python - Sets
- Python - Access Set Items
- Python - Add Set Items
- Python - Remove Set Items
- Python - Loop Sets
- Python - Join Sets
- Python - Copy Sets
- Python - Set Operators
- Python - Set Methods
- Python - Set Exercises
- Python Dictionaries
- Python - Dictionaries
- Python - Access Dictionary Items
- Python - Change Dictionary Items
- Python - Add Dictionary Items
- Python - Remove Dictionary Items
- Python - Dictionary View Objects
- Python - Loop Dictionaries
- Python - Copy Dictionaries
- Python - Nested Dictionaries
- Python - Dictionary Methods
- Python - Dictionary Exercises
- Python Arrays
- Python - Arrays
- Python - Access Array Items
- Python - Add Array Items
- Python - Remove Array Items
- Python - Loop Arrays
- Python - Copy Arrays
- Python - Reverse Arrays
- Python - Sort Arrays
- Python - Join Arrays
- Python - Array Methods
- Python - Array Exercises
- Python File Handling
- Python - File Handling
- Python - Write to File
- Python - Read Files
- Python - Renaming and Deleting Files
- Python - Directories
- Python - File Methods
- Python - OS File/Directory Methods
- Python - OS Path Methods
- Object Oriented Programming
- Python - OOPs Concepts
- Python - Classes & Objects
- Python - Class Attributes
- Python - Class Methods
- Python - Static Methods
- Python - Constructors
- Python - Access Modifiers
- Python - Inheritance
- Python - Polymorphism
- Python - Method Overriding
- Python - Method Overloading
- Python - Dynamic Binding
- Python - Dynamic Typing
- Python - Abstraction
- Python - Encapsulation
- Python - Interfaces
- Python - Packages
- Python - Inner Classes
- Python - Anonymous Class and Objects
- Python - Singleton Class
- Python - Wrapper Classes
- Python - Enums
- Python - Reflection
- Python Errors & Exceptions
- Python - Syntax Errors
- Python - Exceptions
- Python - try-except Block
- Python - try-finally Block
- Python - Raising Exceptions
- Python - Exception Chaining
- Python - Nested try Block
- Python - User-defined Exception
- Python - Logging
- Python - Assertions
- Python - Built-in Exceptions
- Python Multithreading
- Python - Multithreading
- Python - Thread Life Cycle
- Python - Creating a Thread
- Python - Starting a Thread
- Python - Joining Threads
- Python - Naming Thread
- Python - Thread Scheduling
- Python - Thread Pools
- Python - Main Thread
- Python - Thread Priority
- Python - Daemon Threads
- Python - Synchronizing Threads
- Python Synchronization
- Python - Inter-thread Communication
- Python - Thread Deadlock
- Python - Interrupting a Thread
- Python Networking
- Python - Networking
- Python - Socket Programming
- Python - URL Processing
- Python - Generics
- Python Libraries
- NumPy Tutorial
- Pandas Tutorial
- SciPy Tutorial
- Matplotlib Tutorial
- Django Tutorial
- OpenCV Tutorial
- Python Miscellenous
- Python - Date & Time
- Python - Maths
- Python - Iterators
- Python - Generators
- Python - Closures
- Python - Decorators
- Python - Recursion
- Python - Reg Expressions
- Python - PIP
- Python - Database Access
- Python - Weak References
- Python - Serialization
- Python - Templating
- Python - Output Formatting
- Python - Performance Measurement
- Python - Data Compression
- Python - CGI Programming
- Python - XML Processing
- Python - GUI Programming
- Python - Command-Line Arguments
- Python - Docstrings
- Python - JSON
- Python - Sending Email
- Python - Further Extensions
- Python - Tools/Utilities
- Python - GUIs
- Python Advanced Concepts
- Python - Abstract Base Classes
- Python - Custom Exceptions
- Python - Higher Order Functions
- Python - Object Internals
- Python - Memory Management
- Python - Metaclasses
- Python - Metaprogramming with Metaclasses
- Python - Mocking and Stubbing
- Python - Monkey Patching
- Python - Signal Handling
- Python - Type Hints
- Python - Automation Tutorial
- Python - Humanize Package
- Python - Context Managers
- Python - Coroutines
- Python - Descriptors
- Python - Diagnosing and Fixing Memory Leaks
- Python - Immutable Data Structures
- Python Useful Resources
- Python - Questions & Answers
- Python - Interview Questions & Answers
- Python - Online Quiz
- Python - Quick Guide
- Python - Reference
- Python - Cheatsheet
- Python - Projects
- Python - Useful Resources
- Python - Discussion
- Python Compiler
- NumPy Compiler
- Matplotlib Compiler
- SciPy Compiler
Python collections.deque
In Python, deque() is one of the datatypes, which returns a new deque object initialized left-to-right (using append()) with data from iterable. If iterable is not specified, the new deque is empty.
The deque is implemented using collections module. When we need to perform faster operations like append and pop an element we prefer deque as its time complexity is O(1) time as compared to list that provides O(n) time complexity.
Syntax
Following is the syntax of the Python deque() class −
class collections.deque([iterable[, maxlen]])
Parameters
This data type accepts iterable as a parameter.
Return Value
This datatype returns <class 'collections.deque'> object.
Example
Following is an basic example of Python deque() class −
from collections import deque d = deque('xyz') print(d)
Following is the output of the above code −
deque(['x', 'y', 'z'])
Method in deque
Following are the methods present in the deque() class −
Method | Function |
---|---|
append(x) | Add x to the right side of the deque |
appendleft(x) | Add x to the left side of the deque |
clear() | Remove all elements from the deque leaving it with length 0 |
copy() | Create a shallow copy of the deque. |
count(x) | Count the number of deque elements equal to x |
extend(iterable) | Extend the right side of the deque by appending elements from the iterable argument |
extendleft(iterable) | Extend the left side of the deque by appending elements from iterable. |
index(x[, start[, stop]]) | Return the position of x in the deque (at or after index start and before index stop). Returns the first match or raises ValueError if not found. |
insert(i, x) | Insert x into the deque at position i |
pop() | Remove and return an element from the right side of the deque |
popleft() | Remove and return an element from the left side of the deque. If no elements are present, raises an IndexError. |
rotate(n=1) | Rotate the deque n steps to the right. If n is negative, rotate to the left |
maxlen | Maximum size of a deque or None if unbounded |
remove(value) | Remove the first occurrence of value. If not found, raises a ValueError. |
reverse() | Reverse the elements of the deque in-place and then return None. |
Python deque.append() Method
We can add an element into the deque using append(). The element is added at right end of the deque. The appendleft() is used to add the element at the right end of the deque. Only single element is allowed appended to the deque at once.
Example
Here, we have created deque and appended an element using append() at right of deque. Using appendleft() we have appended an element at left of deque() −
import collections # initializing deque deque1 = collections.deque([1, 2, 3]) print("deque: ", deque1) # using append() to insert element at right end # inserts 100 at the end of deque deque1.append(100) # printing modified deque print("The deque after appending at right : ",deque1) # using appendleft() to insert element at left end # inserts 21 at the beginning of deque deque1.appendleft(21) # printing modified deque print("The deque after appending at left : ",deque1)
Following is the output of the above code −
deque: deque([1, 2, 3]) The deque after appending at right : deque([1, 2, 3, 100]) The deque after appending at left : deque([21, 1, 2, 3, 100])
Python deque.pop() Method
The pop() method in deque is used to remove an element from the end of the deque. The popleft() is used to remove an element at the left end of the deque.
Example
Here, we have removed an element at the right end using pop(). Using popleft() we have removed the left end element from the deque. This method removes only one element at once.
import collections # initializing deque deque_1 = collections.deque([60, 11, 42, 93, 74]) print("deque: ", deque_1) # using pop() to delete element from right end of deque deque_1.pop() # printing modified deque print("The deque after deleting from right : ",deque_1) # using popleft() to delete element from left deque_1.popleft() # printing modified deque print("The deque after deleting from left : ",deque_1)
Following is the output of the above code −
deque: deque([60, 11, 42, 93, 74]) The deque after deleting from right : deque([60, 11, 42, 93]) The deque after deleting from left : deque([11, 42, 93])
Python deque.extend() Method
The extend() method with deque is used to add more than one elements at the right end of the deque. The extendleft() is used to add the elements at the right end of the deque.
Example
Following is another example of this class −
import collections # initializing deque deque_1 = collections.deque([1, 2, 3]) # using extend() to add numbers to right end deque_1.extend([40,50]) # printing modified deque print ("The deque after extending deque at right end :",deque_1) # using extendleft() to add numbers to left end deque_1.extendleft([70,80]) # printing modified deque print ("The deque after extending deque at left end: ",deque_1)
Following is the output of the above code −
The deque after extending deque at right end : deque([1, 2, 3, 40, 50]) The deque after extending deque at left end: deque([80, 70, 1, 2, 3, 40, 50])
Python deque.rotate() Method
The rotate() method rotates the deque by the number specified in arguments. If the number specified is negative, rotation occurs to the left. Else rotation is to right.
Example
Here, we have created a deque and performed rotation operation on deque. When we passed a negative value rotation occurred from left and when a positive value is passed rotation occurred from right −
from collections import deque #defined deque deque_1=deque([1,2,3,4]) #left rotation of deque deque_1.rotate(-1) print("Left Rotation Of deque :",deque_1) #right rotating of deque deque_1.rotate(2) print("Right Rotation Of deque :",deque_1)
Following is the output of the above code −
Left Rotation Of deque : deque([2, 3, 4, 1]) Right Rotation Of deque : deque([4, 1, 2, 3])