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