将列表列表转换为列

时间:2017-04-17 21:10:10

标签: python

打印出来时,我有一组看起来像这样的列表:

    =================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个列表中的“None”,但到目前为止,我这样做的尝试给了我错误。

1 个答案:

答案 0 :(得分: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位于中间位置)
  4. 对于子串x[1:-1]。它还增加了一些缩进。