【问题标题】:output alignment issue with lists列表的输出对齐问题
【发布时间】:2013-11-08 21:07:48
【问题描述】:

我试图得到一个左对齐的输出..但我一直遇到对齐问题。这是我的代码:

def print_report(symbol:str,strategy:str, alist1:list, alist2:list, alist3:list, alist4:list):
    print('\nSYMBOL:   ', symbol.upper())
    print('STRATEGY: ', strategy)
    print('\n''DATE            CLOSING        INDICATOR        SIGNAL')
    for i in range(0,len(alist1)):
        print('{0:<0}{1:>13}{2:>15}{3:>15}'.format(alist1[i],alist2[i],alist3[i],alist4[i]))

输出应如下所示:

DATE          CLOSING     INDICATOR       SIGNAL
2013-10-01     887.00        0.00               
2013-10-02     887.99        0.00               
2013-10-03     876.09        0.00               
2013-10-04     872.35        0.00               
2013-10-07     865.74      877.83         SELL
2013-10-08     853.67      871.17         SELL
2013-10-09     855.86      864.74         SELL
2013-10-10     868.24      863.17          BUY
2013-10-11     871.99      863.10          BUY
2013-10-18    1011.41      911.27          BUY
2013-10-21    1003.30      936.71          BUY

有没有更简单的方法来获取输出?或正确对齐?

【问题讨论】:

  • 什么问题?你能告诉我们你得到了什么吗?
  • 你的意思是right-justified
  • 好吧,使用'{0:&lt;0}{1:&gt;13}{2:&gt;17}{3:&gt;17}'.format(...)...
  • 问题出在最后一部分BUY和SELL没有对齐。
  • 您可能想要使用某种'{0:width} {1:&gt;width} {2:&gt;width} {3:&lt;width}' 格式(注意格式字符串本身的空格),那么您将不会遇到这些对齐问题。 :)

标签: python printing output


【解决方案1】:

以与数据行相同的格式打印标题。

def print_report(symbol:str, strategy:str,
                 dates:list, closings:list, indicators:list, signals:list):
    fmt = '{0[0]:<0}{0[1]:>13}{0[2]:>15}{0[3]:>15}'
    print()
    print('SYMBOL:   ', symbol.upper())
    print('STRATEGY: ', strategy)
    print()
    print(fmt.format(('DATE', 'CLOSING', 'INDICATOR', 'SIGNAL')))
    for d in zip(dates, closings, indicators, signals):
        print(fmt.format(d))

如果您愿意,您可以为标题使用不同的格式,但重点是,标题也可以使用 format 方法。

【讨论】:

  • 最后一部分 BUY 和 SELL 仍然没有对齐..我们可以让它们对齐吗?
猜你喜欢
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-12
相关资源
最近更新 更多