Correction des arguments par défaut mutables
En Python, l'utilisation d'objets mutables comme les listes en tant qu'arguments par défaut dans les fonctions peut conduire à des comportements inattendus. Cela s'explique par le fait que la valeur par défaut d'un argument de fonction n'est évaluée qu'une seule fois, au moment où la fonction est définie. Par conséquent, cet argument par défaut mutable est partagé entre toutes les invocations de la fonction.
Pour remédier à cela, la fonction doit être modifiée pour utiliser
None
comme valeur par défaut pour l'argument de liste, puis initialiser une liste vide à l'intérieur de la fonction lorsque cet argument est None
.Vous devez modifier la fonction
mutable_default_argument
définie dans l'exercice précédent. Cette fonction prendra deux paramètres : un entier n
et une liste lst
qui a pour valeur par défaut None
.La fonction doit vérifier si
lst
est None
et, si c'est le cas, l'initialiser comme une liste vide. Elle doit ensuite ajouter l'entier n
à lst
et retourner lst
.La première ligne de l'entrée contient un seul entier
m
, le nombre de fois que la fonction sera appelée. Chacune des m
lignes suivantes contient un seul entier n
, le nombre qui sera ajouté à la liste.La sortie doit contenir
m
lignes. Chaque ligne doit être une liste représentant l'état de lst
après chaque appel de fonction.Entrée | Sortie |
3
1
2
3 | [1]
[2]
[3] |
Note: Remarquez que, contrairement à l'exercice précédent, la liste
lst
n'est pas partagée entre les appels de la fonction. Chaque appel de fonction produit une liste avec un seul élément, correspondant au nombre ajouté lors de cet appel particulier. C'est le comportement attendu, obtenu en évitant l'utilisation d'arguments par défaut mutables.Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB