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] |
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