2014-09-13 180 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 + '\ n')* 3).format(* 1)'用于Python> 2.6 。 – paugier 2014-09-13 14:03:41

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)])])