Corrigindo Argumentos Padrão Mutáveis
Em Python, utilizar objetos mutáveis como listas como argumentos padrão em funções pode levar a comportamentos inesperados. Isso ocorre porque o valor padrão de um argumento de função é avaliado apenas uma vez, no momento em que a função é definida. Consequentemente, o argumento padrão mutável é partilhado entre todas as invocações da função.
Para superar este problema, a função deve ser modificada para usar None
como valor padrão para o argumento da lista e, em seguida, inicializar uma lista vazia dentro da função quando esse argumento for None
.
É-te solicitado que alteres a função mutable_default_argument
definida no exercício anterior. Esta função terá dois parâmetros: um inteiro n
e uma lista lst
que, por padrão, é None
.
A função deve verificar se lst
é None
e, caso seja, inicializá-la como uma lista vazia. Depois, deve adicionar o inteiro n
a lst
e retornar lst
.
A primeira linha da entrada contém um único inteiro m
, o número de vezes que a função será chamada. Cada uma das próximas m
linhas contém um único inteiro n
, o número que será adicionado à lista.
A saída deve conter m
linhas. Cada linha deve ser uma lista, representando o estado de lst
após cada chamada da função.
Entrada | Saída |
3 1 2 3 | [1] [2] [3] |
Nota: Observa que, ao contrário do exercício anterior, a lista lst
não é partilhada entre as invocações da função. Cada chamada da função produz uma lista com um único elemento, correspondente ao número adicionado nessa chamada específica. Este é o comportamento esperado e é alcançado evitando o uso de argumentos padrão mutáveis.
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB