Python – Queue.LIFOQueue vs Colecciones.Deque

Tanto LIFOQueue como Deque se pueden usar usando los módulos incorporados Queue y Collections en Python, ambos son estructuras de datos y se usan ampliamente, pero para diferentes propósitos. En este artículo, consideraremos la diferencia entre Queue.LIFOQueue y Collections.Deque con respecto a la usabilidad, el tiempo de ejecución, el trabajo, la implementación, etc. en Python.

queue.LifoQueue: la cola del móduloproporciona una cola LIFO que técnicamente funciona como una pila. Por lo general, se utiliza para la comunicación entre los diferentes subprocesos en el mismo proceso.

A continuación se muestra un programa que muestra la implementación de Lifo.Queue :

Python3

# Import required module
import queue
 
# Initialize LIFO Queue
LIFOq = queue.LifoQueue(maxsize=3)
 
# qsize() give the maxsize of
# the Queue
print(LIFOq.qsize())
 
# Data Inserted as 5->9->1->7,
# same as Queue
LIFOq.put(1)
LIFOq.put(2)
LIFOq.put(3)
 
# Displaying if the Queue is full
print("Full: ", LIFOq.full())
 
# Displaying size of queue
print("Size: ", LIFOq.qsize())
 
# Data will be accessed in the
# reverse order Reverse of that
# of Queue
print(LIFOq.get())
print(LIFOq.get())
print(LIFOq.get())
 
# Displaying if the queue is empty or not
print("Empty: ", LIFOq.empty())

Producción:

0
Full:  True
Size:  3
3
2
1
Empty:  True

collections.deque: Deque (Doubly Ended Queue) en Python se implementa usando el módulo collections . Esta estructura de datos se utiliza principalmente para las colas. El mecanismo de cola FIFO se implementa mediante append() y popleft() . Sus operaciones son bastante más rápidas en comparación con las listas.

A continuación se muestra un programa que ilustra la implementación de collections.deque :

Python3

# Import required modules
import collections
 
# Initialize deque
Deque = collections.deque([10, 20, 30])
 
# Using append() to insert element at right end
# Inserts 0 at the end of deque
Deque.append(0)
 
# Printing modified deque
print("The deque after appending at right is:", Deque)
 
# Using appendleft() to insert element at left end
# Inserts 100 at the beginning of deque
Deque.appendleft(100)
 
# Printing modified deque
print("The deque after appending at left is: ", Deque)
 
 
# Using pop() to delete element from right end
# Deletes 0 from the right end of deque
Deque.pop()
 
# Printing modified deque
print("The deque after deleting from right is:", Deque);
 
# Using popleft() to delete element from left end
# Deletes 100 from the left end of deque
Deque.popleft()
 
# Printing modified deque
print("Queue:", Deque)

Producción:

The deque after appending at right is: deque([10, 20, 30, 0])
The deque after appending at left is:  deque([100, 10, 20, 30, 0])
The deque after deleting from right is: deque([100, 10, 20, 30])
Queue: deque([10, 20, 30])

Diferencia entre LIFOQueue y Deque:

No Señor. Cola LIFO Quitar de la cola
1 Implementa pilas Implementa una cola de doble filo.
2 Presente en el módulo de cola Presente en el módulo Colecciones
3 Permite que varios subprocesos se comuniquen utilizando datos o mensajes en cola Simplemente destinado a ser una estructura de datos.
4 Menos características (operaciones y métodos) Gran variedad de características (operaciones y métodos)
5 Sigue al último en entrar, primero en salir Sigue primero en entrar primero en salir
6 Operaciones lentas (largo tiempo de ejecución) Altas operaciones (muy bajo tiempo de ejecución)
6 No se usa comúnmente, generalmente se usa para operaciones de comunicación de subprocesos. Se utiliza principalmente para operaciones de estructura de datos.

Publicación traducida automáticamente

Artículo escrito por riturajsaha 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 *