2014-09-13 3 views
0

У меня есть список:печати отформатированный список

l = [i for i in range(9)] 

и мне нужно форматировать его строковое представление следующим образом:

'{0}{1}{2}\n{3}{4}{5}\n{6}{7}{8}'.format(l[0], l[1], l[2], l[3], l[4], l[5], l[6], l[7], l[8]) 

Есть ли более элегантный/краткий способ сделать такую ​​вещь?

Я думал, что-то вроде следующего:

'{0}{1}{2}\n{3}{4}{5}\n{6}{7}{8}'.format([l[i] for i in range(9)]) 

Но, кажется, он не работает. Любые альтернативы?

ответ

2

Вы, вероятно, хотите сделать аргумент распаковку:

'{0}{1}{2}\n{3}{4}{5}\n{6}{7}{8}'.format(*l) 

Посмотрите here для более подробной информации.

+2

или просто '(('{}' * 3 + '\ п') * 3) .format (* л)' для Python> 2,6 , – paugier

0

FWIW, Вот версия Python 2 стиль:

L = list('abcdefghi') 
print '\n'.join([''.join(u) for u in zip(*[L[i::3] for i in (0, 1, 2)])]) 
Смежные вопросы