Исправление изменяемых аргументов по умолчанию

В 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

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