2014-10-19 1 views
0

Я хочу составить список списка ... из глубины n.Python: как сделать вложенный список глубин n?

Curently, я использую:

a = [] 
for i in range(n - 1): 
    a = [a] 
print a 

Например, если n = 3 я получил [[[ ]]].

Это самый ясный и более питонический способ сделать это?

+1

Истина! Я не думаю, что это очень полезно, чтобы иметь больше питонического способа сделать это. Я имею в виду, кто хочет создавать список с глубиной n, каждый день в своем коде. – user3378649

ответ

0

Да, я думаю, что у вас есть лучший способ. Это быстрее и не страдать от ограничений, упомянутые @Aleksi

Alternative бы написать рекурсивную функцию или использовать Eval

eval('['*n + ']'*n) # much slower than a for loop! 
+1

Эвальская версия разрывается на 100. (И такая же проблема для рекурсивного на пределе рекурсии, очевидно) –

+0

@AleksiTorhamo, да, хорошая точка! Я бы использовал его для чего-то быстрого в REPL в любом случае –

0

Это Pythonic достаточно?

>>> n = 5 
>>> map(lambda i: (lambda f, *a: f(f, [], *a))(lambda rec, k, i: k if i == 2 else rec(rec, [k], i-1), i), [n]) 
[[[[[]]]]]