Исправление изменяемых аргументов по умолчанию
В Python использование изменяемых объектов, таких как списки, в качестве аргументов по умолчанию в функциях может привести к неожиданному поведению. Это происходит потому, что значение аргумента по умолчанию вычисляется только один раз — при определении функции. В результате один и тот же изменяемый аргумент по умолчанию будет использоваться во всех вызовах этой функции.
Чтобы решить эту проблему, функцию следует изменить так, чтобы использовать None
в качестве значения по умолчанию для аргумента списка, а затем инициализировать пустой список внутри функции, если этот аргумент равен None
.
Вам нужно модифицировать функцию mutable_default_argument
, определённую в предыдущем упражнении. Эта функция должна принимать два параметра: целое число n
и список lst
, который по умолчанию равен None
.
Функция должна проверить, равен ли lst
значению None
, и если это так, инициализировать его как пустой список. Затем необходимо добавить число n
в lst
и вернуть lst
.
Первая строка входных данных содержит одно целое число m
— количество вызовов функции. Каждая из следующих m
строк содержит одно целое число n
, которое будет добавлено в список.
Вывод должен состоять из m
строк. Каждая строка должна быть списком, отображающим состояние lst
после каждого вызова функции.
Ввод | Вывод |
3 1 2 3 | [1] [2] [3] |
Примечание: Обратите внимание, что в отличие от предыдущего упражнения, список lst
не разделяется между вызовами функции. Каждый вызов функции создаёт список с одним элементом, соответствующим числу, добавленному в этом вызове. Это ожидаемое поведение достигается за счёт избегания использования изменяемых аргументов по умолчанию.
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB