El módulo collections
de Python proporciona deque
, una estructura optimizada para inserciones y eliminaciones rápidas en ambos extremos, a diferencia de las listas (list
), que pueden ser más lentas para estas operaciones debido a la realineación de elementos en memoria.
deque
:
append()
, appendleft()
, pop()
, popleft()
, etc.
maxlen
.
Antes de usar deque
, es necesario importarlo desde collections
:
from collections import deque
deque
Método | Descripción |
---|---|
append(x)
|
Agrega x al final de la deque.
|
appendleft(x)
|
Agrega x al inicio de la deque.
|
pop()
|
Elimina y devuelve el último elemento. |
popleft()
|
Elimina y devuelve el primer elemento. |
extend(iterable)
|
Agrega múltiples elementos al final. |
extendleft(iterable)
|
Agrega múltiples elementos al inicio (en orden inverso). |
rotate(n)
|
Rota los elementos n posiciones a la derecha (izquierda si n es negativo).
|
reverse()
|
Invierte el orden de los elementos. |
clear()
|
Elimina todos los elementos de la deque. |
deque
y operaciones básicas
from collections import deque
# Crear una deque con algunos elementos
dq = deque([1, 2, 3])
# Agregar elementos
dq.append(4) # [1, 2, 3, 4]
dq.appendleft(0) # [0, 1, 2, 3, 4]
# Eliminar elementos
dq.pop() # [0, 1, 2, 3] -> devuelve 4
dq.popleft() # [1, 2, 3] -> devuelve 0
print(dq) # deque([1, 2, 3])
deque
con tamaño máximo (maxlen
)
dq = deque(maxlen=3) # La deque tendrá un tamaño máximo de 3
dq.append(1)
dq.append(2)
dq.append(3)
dq.append(4) # Se elimina el primer elemento (1) automáticamente
print(dq) # deque([2, 3, 4], maxlen=3)
dq = deque([1, 2, 3, 4, 5])
dq.rotate(2) # Mueve los últimos 2 elementos al frente
print(dq) # deque([4, 5, 1, 2, 3])
Jorge García
Fullstack developer