2017-04-17 33 views
0

我有一组列表看起来像这样在打印时的:打开列表的列表为列

=================Tableaus================= 
    ---1----2----3----4----5----6----7----8--- 
[K♠, 5♠, 10♥, 2♥, 7♦, Q♣, 4♣] 
[Q♠, 4♠, 9♥, A♥, 6♦, J♣, 3♣] 
[J♠, 3♠, 8♥, K♦, 5♦, 10♣, 2♣] 
[10♠, 2♠, 7♥, Q♦, 4♦, 9♣, A♣] 
[9♠, A♠, 6♥, J♦, 3♦, 8♣, None] 
[8♠, K♥, 5♥, 10♦, 2♦, 7♣, None] 
[7♠, Q♥, 4♥, 9♦, A♦, 6♣, None] 
[6♠, J♥, 3♥, 8♦, K♣, 5♣, None] 

如何把这些名单成整洁的列?我也想删除最后4个名单中的“无”,但到目前为止,我的尝试都给了我错误。

+0

删除'None's很容易,排列柱很多,* *更难... –

+0

尝试寻找“漂亮的打印”解决方案,例如http://stackoverflow.com/questions/9712085/numpy-pretty-print-tabular-data – Riaz

+0

你今天有家庭任务的最后期限?请参阅http://stackoverflow.com/questions/43456021/printing-multiple-lists-vertically/43456772#43456772 – VeGABAU

回答

0

最直接的方法是使用replace()(ab)。比方说,我们要打印的行称为x

x = ['7♠', 'Q♥', '4♥', '9♦', 'A♦', '6♣', None] 

那么,如果我们这样做:

x=str(x) 
print(7*' '+x[1:-1].replace(', ',' ').replace("'",'').replace('None',' ')) 

它会打印:

7♠ Q♥ 4♥ 9♦ A♦ 6♣ 

随着表结果的其余部分将是:

=================Tableaus================= 
    ---1----2----3----4----5----6----7----8--- 
     7♠ Q♥ 4♥ 9♦ A♦ 6♣  

将其应用于所有行,然后完成。

它只是在做:

  1. 更换分离:从', '到3位
  2. 删除一些'
  3. 删除任何串'None'(和由4位取代它,只是如果None是在中间)

对于子x[1:-1]。它还增加了一些缩进。