右对齐此列

时间:2012-10-22 23:35:52

标签: python

  

可能重复:
  How do I right-align my text in Python?

4   8   12   16   
20   24   28   32   
36   40   44   48   
52   56   60   64   
68   72   76   80   
84   88   92   96   
100   104   108   112   
116   120   124   128   
132   136   140   144   
148   152   156   160   

现在我有一个像这样的专栏。有人可以帮我弄清楚如何正确对齐列,使它看起来像这样:

  4     8    12    16   
 20    24    28    32   
 36    40    44    48   
 52    56    60    64   
 68    72    76    80   
 84    88    92    96   
100   104   108   112   
116   120   124   128   
132   136   140   144   
148   152   156   160   

3 个答案:

答案 0 :(得分:5)

>>> for line in data:
...     print '   '.join('{:>3}'.format(i) for i in line.split())
...
  4     8    12    16
 20    24    28    32
 36    40    44    48
 52    56    60    64
 68    72    76    80
 84    88    92    96
100   104   108   112
116   120   124   128
132   136   140   144
148   152   156   160

请参阅Format String Syntax上的文档。

答案 1 :(得分:0)

cell_width = 6

for row in data:
    #"%-6s"%val will right format 6  spaces
    print ("%-"+cell_width+"s ")*len(row) % row

无论如何......我应该注意%字符串格式被认为是折旧的......

答案 2 :(得分:0)

除了字符串格式化之外,还有一个字符串str.rjust的内置函数:

for line in data.splitlines():
    print ' '.join(el.rjust(5) for el in line.split())