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