En Python, deque
es una estructura de datos que forma parte del módulo collections
. El nombre deque
proviene de «double-ended queue» (cola de doble extremo), y ofrece una forma eficiente de realizar operaciones en ambos extremos de la cola, a diferencia de las listas normales en Python que son más eficientes para operaciones al final de la lista.
Características principales de deque
:
- Operaciones en ambos extremos:
- append(): Agrega un elemento al final.
- appendleft(): Agrega un elemento al inicio.
- pop(): Elimina y devuelve un elemento del final.
- popleft(): Elimina y devuelve un elemento del inicio.
- Eficiencia:
- Las operaciones de
append
ypop
en ambos extremos tienen una complejidad de tiempo O(1), a diferencia de las listas donde algunas operaciones pueden ser O(n).
- Las operaciones de
- Uso de espacio:
- Los
deque
pueden ser limitados en tamaño, lo que significa que puedes establecer un máximo de elementos. Cuando eldeque
alcanza su capacidad máxima, las operaciones de adición harán que se eliminen elementos del otro extremo automáticamente.
- Los
Ejemplo de uso:
Aquí hay un ejemplo básico para ilustrar el uso de deque
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from collections import deque # Crear un deque vacío d = deque() # Agregar elementos al final d.append('a') d.append('b') # Agregar elementos al inicio d.appendleft('z') d.appendleft('y') print("Deque después de adiciones:", d) # Eliminar elementos del final d.pop() # Eliminar elementos del inicio d.popleft() print("Deque después de eliminaciones:", d) |
Deque con tamaño máximo:
Puedes establecer un tamaño máximo para el deque
, y el deque
eliminará elementos del extremo opuesto cuando se alcanza el límite.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from collections import deque # Crear un deque con un tamaño máximo de 3 d = deque(maxlen=3) # Agregar elementos d.append(1) d.append(2) d.append(3) print("Deque con tamaño máximo:", d) # Agregar un nuevo elemento eliminará el elemento más antiguo d.append(4) print("Deque después de agregar 4:", d) |
En este caso, cuando agregas 4
, el deque
elimina el 1
, ya que es el elemento más antiguo y el tamaño máximo se ha alcanzado.
El deque
es muy útil cuando necesitas una estructura de datos que permita acceso rápido y eficiente a ambos extremos y cuando las operaciones de inserción y eliminación en estos extremos son comunes en tu aplicación.