Deque en Python

Deque (Doubly Ended Queue) en Python se implementa usando el módulo » colecciones «. Deque es preferible a una lista en los casos en los que necesitamos operaciones de adición y extracción más rápidas desde ambos extremos del contenedor, ya que deque proporciona una complejidad de tiempo O(1) para las operaciones de adición y extracción en comparación con la lista que proporciona O(n) complejidad del tiempo.

Ejemplo:

Python3

# Python code to demonstrate deque 
      
    
from collections import deque 
      
# Declaring deque 
queue = deque(['name','age','DOB'])  
      
print(queue)

Producción: 

deque(['name', 'age', 'DOB'])

Veamos varias operaciones en deque: 

  • append() :- Esta función se usa para insertar el valor en su argumento en el extremo derecho de la deque.
  • appendleft() :- Esta función se usa para insertar el valor en su argumento en el extremo izquierdo de la deque.
  • pop() : – Esta función se usa para eliminar un argumento del extremo derecho de la deque.
  • popleft() : – Esta función se usa para eliminar un argumento del extremo izquierdo de la deque.

Python3

# Python code to demonstrate working of 
# append(), appendleft(), pop(), and popleft()
  
# importing "collections" for deque operations
import collections
  
# initializing deque
de = collections.deque([1,2,3])
  
# using append() to insert element at right end 
# inserts 4 at the end of deque
de.append(4)
  
# printing modified deque
print ("The deque after appending at right is : ")
print (de)
  
# using appendleft() to insert element at left end 
# inserts 6 at the beginning of deque
de.appendleft(6)
  
# printing modified deque
print ("The deque after appending at left is : ")
print (de)
  
# using pop() to delete element from right end 
# deletes 4 from the right end of deque
de.pop()
  
# printing modified deque
print ("The deque after deleting from right is : ")
print (de)
  
# using popleft() to delete element from left end 
# deletes 6 from the left end of deque
de.popleft()
  
# printing modified deque
print ("The deque after deleting from left is : ")
print (de)

Producción: 

The deque after appending at right is : 
deque([1, 2, 3, 4])
The deque after appending at left is : 
deque([6, 1, 2, 3, 4])
The deque after deleting from right is : 
deque([6, 1, 2, 3])
The deque after deleting from left is : 
deque([1, 2, 3])
  • index(ele, beg, end) :- Esta función devuelve el primer índice del valor mencionado en los argumentos, comenzando la búsqueda desde el inicio hasta el final del índice.
  • insert(i, a) :- Esta función inserta el valor mencionado en los argumentos(a) en el índice(i) especificado en los argumentos.
  • remove() :- Esta función elimina la primera aparición del valor mencionado en los argumentos.
  • count() :- Esta función cuenta el número de ocurrencias del valor mencionado en los argumentos.

Python3

# Python code to demonstrate working of 
# insert(), index(), remove(), count()
  
# importing "collections" for deque operations
import collections
  
# initializing deque
de = collections.deque([1, 2, 3, 3, 4, 2, 4])
  
# using index() to print the first occurrence of 4
print ("The number 4 first occurs at a position : ")
print (de.index(4,2,5))
  
# using insert() to insert the value 3 at 5th position
de.insert(4,3)
  
# printing modified deque
print ("The deque after inserting 3 at 5th position is : ")
print (de)
  
# using count() to count the occurrences of 3
print ("The count of 3 in deque is : ")
print (de.count(3))
  
# using remove() to remove the first occurrence of 3
de.remove(3)
  
# printing modified deque
print ("The deque after deleting first occurrence of 3 is : ")
print (de)

Producción:  

The number 4 first occurs at a position : 
4
The deque after inserting 3 at 5th position is : 
deque([1, 2, 3, 3, 3, 4, 2, 4])
The count of 3 in deque is : 
3
The deque after deleting first occurrence of 3 is : 
deque([1, 2, 3, 3, 4, 2, 4])
  • extender (iterable) : – Esta función se usa para agregar múltiples valores en el extremo derecho de la deque. El argumento pasado es iterable.
  • extendleft (iterable) : – Esta función se usa para agregar múltiples valores en el extremo izquierdo de la deque. El argumento pasado es iterable. El orden se invierte como resultado de los anexos izquierdos.
  • reverse() :- Esta función se usa para invertir el orden de los elementos deque.
  • rotate() : – Esta función rota el deque por el número especificado en los argumentos. Si el número especificado es negativo, la rotación se produce hacia la izquierda. De lo contrario, la rotación es a la derecha.

Python3

# Python code to demonstrate working of 
# extend(), extendleft(), rotate(), reverse()
  
# importing "collections" for deque operations
import collections
  
# initializing deque
de = collections.deque([1, 2, 3,])
  
# using extend() to add numbers to right end 
# adds 4,5,6 to right end
de.extend([4,5,6])
  
# printing modified deque
print ("The deque after extending deque at end is : ")
print (de)
  
# using extendleft() to add numbers to left end 
# adds 7,8,9 to left end
de.extendleft([7,8,9])
  
# printing modified deque
print ("The deque after extending deque at beginning is : ")
print (de)
  
# using rotate() to rotate the deque
# rotates by 3 to left
de.rotate(-3)
  
# printing modified deque
print ("The deque after rotating deque is : ")
print (de)
  
# using reverse() to reverse the deque
de.reverse()
  
# printing modified deque
print ("The deque after reversing deque is : ")
print (de)

Producción : 

The deque after extending deque at end is : 
deque([1, 2, 3, 4, 5, 6])
The deque after extending deque at beginning is : 
deque([9, 8, 7, 1, 2, 3, 4, 5, 6])
The deque after rotating deque is : 
deque([1, 2, 3, 4, 5, 6, 9, 8, 7])
The deque after reversing deque is : 
deque([7, 8, 9, 6, 5, 4, 3, 2, 1]) 
 

Este artículo es una contribución de Manjeet Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *