Здесь перед нами так называемая одна из распространённых «ловушек» в Python. Связана она с изменяемыми значениями по умолчанию для аргументов функции
Когда мы определяем функцию
func(x=[]), значение по умолчанию для x — это пустой список []Однако этот список создаётся один раз при определении функции и затем «запоминается» между вызовами функции. Это означает, что если мы изменим этот список внутри функции (как это делается с помощью
x.append(1)), эти изменения также сохранятся между вызовами По итогу сначала будет выведено
[1], а затем [1, 1]