deque
Use colas de doble extremo rápidas
deque es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
¿Qué es un deque?
Un deque (se pronuncia «deck») es una cola de doble extremo del módulo collections. Permite añadir y extraer elementos rápidamente desde ambos extremos.
Impórtelo con from collections import deque.
from collections import deque
d = deque([1, 2, 3])
print(d)¿Por qué no usar simplemente una lista?
Las listas son lentas al insertar o eliminar elementos del principio, porque todos los elementos deben desplazarse. Un deque realiza las operaciones en el principio en tiempo constante, por lo que resulta ideal para las colas.
from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)Añadir en ambos extremos
Use .append() para añadir a la derecha y .appendleft() para añadir a la izquierda.
from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)Extraer desde ambos extremos
.pop() elimina y devuelve el elemento situado más a la derecha; .popleft() elimina el situado más a la izquierda. Ambas operaciones son rápidas.
from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)Una cola sencilla (FIFO)
Para obtener un comportamiento de primero en entrar, primero en salir, añada elementos a la derecha y use popleft desde la izquierda. Los elementos salen en el mismo orden en que llegaron.
from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())Deque limitada con maxlen
Proporcione un valor de maxlen para limitar el tamaño. Cuando está llena, añadir un elemento en un extremo descarta automáticamente un elemento del otro, lo que resulta ideal para conservar el historial reciente.
from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
recent.append(n)
print(recent)Rotar elementos
.rotate(n) desplaza los elementos hacia la derecha n posiciones; un valor n negativo los rota hacia la izquierda. Los elementos vuelven a aparecer por el extremo opuesto.
from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)Extender en bloque
.extend() añade muchos elementos a la derecha y .extendleft() los añade a la izquierda. Tenga en cuenta que extendleft invierte el orden de los elementos que añade.
from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)Indexación y longitud
Una deque admite la indexación como una lista y funciona con len(). Acceder a los elementos centrales es más lento que acceder a los extremos, así que es preferible usar operaciones en los extremos.
from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))Vaciar e invertir
.reverse() invierte la deque en el mismo lugar y .clear() la vacía. Ambas operaciones modifican la deque directamente.
from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)Contar apariciones
Al igual que una lista, una deque tiene .count() para contar cuántas veces aparece un valor.
from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))Comprobación rápida
Construye una cola FIFO con una deque. ¿Qué par de métodos produce el orden correcto de primero en entrar, primero en salir?
Resumen: deque
Ha aprendido que una deque:
- Admite operaciones rápidas de
append/popen ambos extremos, a diferencia de una lista. - Tiene
appendleftypopleftpara trabajar con el lado izquierdo. - Puede limitarse con
maxlenpara conservar solo los elementos recientes. - Ofrece
rotate,extend,reverseycountpara trabajar con colas.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
q.append(x)
print(q)Preguntas frecuentes
¿La lección «deque» es gratis?
Sí — el texto completo de «deque» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «deque»?
Use colas de doble extremo rápidas Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «deque»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.