Исправление изменяемых аргументов по умолчанию
В 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