Reto 19: Atender solicitudes con existencias limitadas
Objetivo #
Atender solicitudes con existencias limitadas aplicando los contenidos de Python básico.
Conocimientos previos #
Diccionarios, items(), tuplas, pertenencia, condiciones, bucles y mutabilidad.
Repasar los temas necesarios
Tu reto #
Implementa la función atender_solicitudes(existencias, solicitudes).
existencias es un diccionario de producto a unidades disponibles, con cantidades enteras mayores o iguales que cero. Cada solicitud es una tupla (producto, cantidad) con cantidad entera positiva.
Procesa las solicitudes en orden. Si el producto existe y queda cantidad suficiente, acepta la solicitud y descuenta sus unidades. En cualquier otro caso, recházala completa, sin reservar parcialmente ni modificar las existencias. Una solicitud rechazada no impide atender las posteriores.
Devuelve una tupla (aceptadas, restantes): una lista de booleanos, uno por solicitud, y un nuevo diccionario con el estado final. Conserva todas las claves originales, incluso si quedan a cero; no añadas productos desconocidos. No modifiques el diccionario ni la lista recibidos.
La función debe devolver el resultado con return. No uses input() ni print(): el corrector llamará a tu función con diferentes datos.
Ejemplos #
| Llamada | Resultado devuelto |
|---|---|
atender_solicitudes({"lapiz": 3}, [("lapiz", 2), ("lapiz", 2), ("lapiz", 1)]) | ([True, False, True], {"lapiz": 0}) |
atender_solicitudes({}, [("papel", 1)]) | ([False], {}) |
Ver una pista
Crea primero tu propio diccionario recorriendo existencias.items(). Evalúa cada solicitud contra esa copia actualizada y registra su resultado.