E1 · Cola de pedidos
métodos de listas · ★Los pedidos llegan en orden y se despachan del más antiguo al más nuevo. Empieza con ["P-101", "P-102", "P-103"]. Simula: llega P-104; se despacha uno; llega P-105 marcado como urgente (debe ir al frente); el cliente de P-103 cancela; se despachan dos. Muestra la cola después de cada operación y la lista de despachados.
Solución
cola = ["P-101", "P-102", "P-103"]
despachados = []
cola.append("P-104")
print("Llega P-104: ", cola)
despachados.append(cola.pop(0)) # el más antiguo está al inicio
print("Despacho: ", cola)
cola.insert(0, "P-105") # urgente: al frente
print("Urgente P-105: ", cola)
cola.remove("P-103") # cancelación por valor
print("Cancela P-103: ", cola)
for _ in range(2):
despachados.append(cola.pop(0))
print("Despacho x2: ", cola)
print("Despachados: ", despachados)
Llega P-104: ['P-101', 'P-102', 'P-103', 'P-104']
Despacho: ['P-102', 'P-103', 'P-104']
Urgente P-105: ['P-105', 'P-102', 'P-103', 'P-104']
Cancela P-103: ['P-105', 'P-102', 'P-104']
Despacho x2: ['P-104']
Despachados: ['P-101', 'P-105', 'P-102']
Casos borde: cola.pop(0) con la cola vacía lanza IndexError; remove de un pedido que no existe lanza ValueError. Valida con if cola: e if "P-103" in cola:. El _ en el for indica “no me importa el número de vuelta”.