Corregir Argumentos Mutables por Defecto
En Python, utilizar objetos mutables como listas como argumentos por defecto en funciones puede llevar a comportamientos inesperados. Esto sucede porque el valor por defecto de un argumento de función se evalúa solo una vez, en el momento en que la función es definida. Como resultado, el argumento mutable por defecto se comparte entre todas las invocaciones de la función.
Para solucionar esto, la función debe modificarse para usar
None
como valor por defecto para el argumento de la lista y luego inicializar una lista vacía dentro de la función cuando este argumento sea None
.Se requiere que modifiques la función
mutable_default_argument
definida en el ejercicio anterior. Esta función tomará dos parámetros: un entero n
y una lista lst
que por defecto es None
.La función debe verificar si
lst
es None
y, si es así, inicializarla como una lista vacía. Luego, debe agregar el entero n
a lst
y devolver lst
.La primera línea de la entrada contiene un solo entero
m
, el número de veces que se llamará a la función. Cada una de las siguientes m
líneas contiene un solo entero n
, el número que se agregará a la lista.La salida debe contener
m
líneas. Cada línea debe ser una lista, representando el estado de lst
después de cada llamada a la función.Entrada | Salida |
3
1
2
3 | [1]
[2]
[3] |
Nota: Observa cómo, a diferencia del ejercicio anterior, la lista
lst
no se comparte entre las invocaciones de la función. Cada llamada a la función produce una lista con un solo elemento, correspondiente al número agregado en esa llamada en particular. Este es el comportamiento esperado y se logra al evitar el uso de argumentos mutables por defecto.Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB