¿Está en la cola?
Devolvé True si `x` está esperando. Ejemplo: hay_en_cola(["A", "B"], "B") → True
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. 🔄
Devolvé True si `x` está esperando. Ejemplo: hay_en_cola(["A", "B"], "B") → True
🎯 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.