Veränderliche Standardargumente korrigieren
In Python kann die Verwendung von veränderlichen Objekten wie Listen als Standardargumente in Funktionen zu unerwartetem Verhalten führen. Das liegt daran, dass der Standardwert für ein Funktionsargument nur einmal ausgewertet wird, nämlich beim Definieren der Funktion. Dadurch wird das veränderliche Standardargument zwischen allen Funktionsaufrufen geteilt.
Um dieses Problem zu umgehen, sollte die Funktion so angepasst werden, dass
None
als Standardwert für das Listenargument verwendet wird. Innerhalb der Funktion wird dann eine leere Liste initialisiert, wenn dieses Argument None
ist.Du sollst die Funktion
mutable_default_argument
aus der vorherigen Übung modifizieren. Diese Funktion nimmt zwei Parameter: eine Ganzzahl n
und eine Liste lst
, die standardmäßig None
ist.Die Funktion soll prüfen, ob
lst
None
ist, und falls ja, sie als leere Liste initialisieren. Anschließend soll die Ganzzahl n
an lst
angehängt und lst
zurückgegeben werden.Die erste Zeile der Eingabe enthält eine einzelne Ganzzahl
m
, die angibt, wie oft die Funktion aufgerufen wird. Jede der nächsten m
Zeilen enthält eine einzelne Ganzzahl n
, die an die Liste angehängt wird.Die Ausgabe soll
m
Zeilen enthalten. Jede Zeile soll eine Liste sein, die den Zustand von lst
nach jedem Funktionsaufruf darstellt.Eingabe | Ausgabe |
3
1
2
3 | [1]
[2]
[3] |
Hinweis: Beachte, dass im Unterschied zur vorherigen Übung die Liste
lst
nicht zwischen den Funktionsaufrufen geteilt wird. Jeder Funktionsaufruf erzeugt eine Liste mit einem einzigen Element, das der Zahl entspricht, die in diesem speziellen Aufruf angehängt wurde. Dies ist das erwartete Verhalten und wird dadurch erreicht, dass veränderliche Standardargumente vermieden werden.Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB