GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python Technologies
  • Databases
  • Computer Programming
  • Web Development
  • Java Technologies
  • Computer Science
  • Mobile Development
  • Big Data & Analytics
  • Microsoft Technologies
  • DevOps
  • Latest Technologies
  • Machine Learning
  • Digital Marketing
  • Software Quality

This view

  • Original page
  • New address

GeezerVison is showing www.tutorialspoint.com — Python collections.deque

Python Tutorial
  • 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 - Private 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 - Walrus Operator
  • Python - Operator Precedence
  • Python - Comments
  • Python - User Input
  • Python - Numbers
  • Python - Booleans
  • Python - Floating Points
  • Python - Control Flow
  • Python - Decision Making
  • Python - If Statement
  • Python - If else
  • Python - Nested If
  • Python - Conditional User Inputs
  • 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 - Packing and Unpacking
  • 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 - Namedtuple
  • 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 - Multiple Inheritance
  • Python - Multilevel 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 - Data Classes
  • 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 - Warnings
  • Python - Built-in Exceptions
  • Python - Debugger (PDB)
  • 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 - Generator Expressions
  • Python - Lambda Expressions
  • 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 - Odds and Ends
  • 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 - Domain Specific Language (DSL)
  • Python - Data Model
  • 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
Selected Reading
  • UPSC IAS Exams Notes
  • Developer's Best Practices
  • Questions and Answers
  • Online Resume Builder
  • HR Interview Questions
  • Computer Glossary
  • Who is Who

Python collections.deque



Previous
Quiz
Next

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])
python_modules.htm
Tutorix - AI Tutor
Previous Quiz Next
Advertisements
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.