Сохранение переменной значения при обнулении

Что мне делать? Я выполняю вот уже второе задание и во второй раз одна и та же ошибка, не дающая мне получать репутацию. Не понимаю, как решить проблему. Выдержка ошибки ниже.

squares(5) should return [1, 4, 9, 16, 25] ( получилось такое: [1, 4, 9, 16, 25]

Дальше демонстрация прикола:

squares(?)
 Log
Testing for: 18
[1, 4, 9, 16, 25, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324]
 should equal [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324]

Ошибка заключается в повторении предыдущих результатов в начале ответа. У меня код прописан в функции, которую и вызывает сайт, там же прописал list_=[], в этот список пишу ответы и оттуда же вывожу. То есть, я по-умолчанию обнуляю список при каждом вызове функции. Я пытался и внутри функции это делать, но не помогло. Функция ниже:

def squares(n,list_=[]):

    for i in range(1,n+1):
        list_.append(i**2)
    return(list_)

Ответы (2 шт):

Автор решения: Владислав Харламов

Значения по умолчанию нельзя ставить изменяемые, иначе можно напороться на тот факт, что они от вызова функции не будут изменяться (ссылаться на тот же список будут). В вашем случае логично сделать так:

def squares(n,list_=None):
    if list_ is None:
        list_ = []
    for i in range(1,n+1):
        list_.append(i**2)
    return(list_)
→ Ссылка
Автор решения: Эникейщик

Кто вас учит так делать? Зачем вообще в параметрах список?

def squares(n):
    list_ = []
    for i in range(1,n+1):
        list_.append(i**2)
    return(list_)
→ Ссылка