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

To check your solution you need to sign in
Sign in to continue