Глубина списка согласно заданному числу

Прошу помощи у уважаемого сообщества. Задача вроде бы простая, но я уже отчаялся сам догадаться.
Дано: целое натуральное число (n = 5, например).
Необходимо: получить список вложенных списков глубины равной заданному числу. (например: [[[[[]]]]])
Пробовал:


     n = 3  
     a = []
     ans = []
      while n > 0:
        ans.append(a)
        a = ans
        n -= 3
        ans.append(a)

но выдает:

[[], [...]]

попробовал схитрить:

n = 6
print(eval(n*'['+n*']'))

но второй способ переполняет память "проверяльщика".
Подскажите, пожалуйста, наведите на путь истинный.

Полсе подсказки попробовал рекурсию, но ответ у меня все равно получился далеко от ожидаемого:

n = 3
a = []
ans = []
def arr(a, ans):
    ans.append(a)
    return a
while n > 0:
    a = arr(a, ans)
    n -= 1
print(ans)

ответ: [[], [], []] Кроме того, впервые встретил такого зверя: [...], и даже не смог загуглить что это...


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

Автор решения: user745102
lst = [1,2]
n = 3

def make_list(*lst):
    return list(lst)

for i in range(n):
    lst = make_list(lst)

print(lst)
# [[[[1, 2]]]]
→ Ссылка
Автор решения: Stanislav Volodarskiy

Начните с пустого списка, наденьте на него n - 1 списков. Вот так:

n = int(input())
a = []
for _ in range(1, n): # цикл на n - 1 повторений
    a = [a]
print(a)
→ Ссылка