【问题标题】:Turning a List of Lists into Columns将列表列表转换为列
【发布时间】:2026-01-28 20:40:01
【问题描述】:

我有一组打印出来的列表如下所示:

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

【问题讨论】:

  • 删除Nones 很容易,排列列要多得多, 更难...
  • 尝试寻找“漂亮的打印”解决方案,例如*.com/questions/9712085/…
  • 你今天有家庭作业的截止日期吗?见*.com/questions/43456021/…
  • 网上有大量的文档和教程资料。你怎么卡住了?

标签: python


【解决方案1】:

最直接的方法是(ab)使用replace()。假设我们要打印的行名为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]。它还增加了一些缩进。

【讨论】: