Каждый дал решения, которые
- производство готово
- использует стек, поэтому имеет ту же проблему, что и рекурсия
- или пройти список несколько раз
Вот решение боковое решение:)
- не готово к производству, но весело
- нет стека или чего-либо в этом роде, списков не видно
-
def my_print(the_list):
level = -1
out = []
levelUp="levelup"
levelDown="leveldown"
s = repr(the_list).replace("', '","\n").replace(
"', ['", "\n%s\n"%levelUp).replace("['", "\n%s\n"%levelUp).replace(
"']", "\n%s\n"%levelDown).replace("], '", "\n%s\n"%levelDown)
for line in s.splitlines():
if not line: continue
if line == levelUp:
level+=1
elif line == levelDown:
level-=1
else:
print "\t"*level,line
my_print(my_list)
Предполагается, что в тексте вашего списка не будет специальных подстрок.