Encolar varios
Agregá todos los `elementos` al final de la cola, en orden, y devolvé la cola. Ejemplo: encolar_varios(["A"], ["B", "C"]) → ["A", "B", "C"]
Entrá y llevá tu progreso —ejercicios, medallas y Pokémon— a cualquier dispositivo. 🔄
Si tu cuenta ya tiene progreso guardado, se carga ese al entrar.
Entraste como . Tu progreso se sincroniza solo. 🔄
Agregá todos los `elementos` al final de la cola, en orden, y devolvé la cola. Ejemplo: encolar_varios(["A"], ["B", "C"]) → ["A", "B", "C"]
🎯 Meta: dominar la cola (FIFO), la estructura de los turnos y de recorrer “a lo ancho”.
Una cola es como la fila del Centro Pokémon: el primero que llega es el primero que se atiende. FIFO: first in, first out.
cola = []
cola.append("a") # encolar: al final
cola.append("b")
primero = cola.pop(0) # atender: del frente → "a"
⚠️ pop(0) sobre una lista grande es lento (mueve todos los elementos). Para colas de verdad se usa collections.deque, que saca del frente al instante:
from collections import deque
cola = deque(["a", "b"])
cola.popleft() # "a", rapidísimo
La diferencia es de dónde sacás:
| Saca de… | Sirve para… | |
|---|---|---|
| Pila (LIFO) | arriba (pop()) | deshacer, recursión |
| Cola (FIFO) | el frente (pop(0)) | turnos, BFS |
P: Una cola (queue) atiende primero a…
+ el que llegó primero (FIFO)
- el último que llegó (LIFO)
- el de nivel más alto
> Como la fila del Centro Pokémon: first in, first out.
P: Para colas grandes conviene…
+ `collections.deque` (saca del frente al instante)
- `lista.pop(0)` siempre
- un diccionario
> `pop(0)` en una lista mueve todos los elementos; `deque.popleft()` es O(1).
🚶 El Líder Kofu te espera con la fila de su restaurante.