【问题标题】:How do I put things in a table in python [closed]如何在python中将东西放在表中[关闭]
【发布时间】:2017-03-19 05:02:19
【问题描述】:

如何在 python 中制作表格。我在学校这样做,我不允许任何额外的插件,如制表或文本表和漂亮的表格,所以你能指导我如何做到这一点,谢谢它适用于 python 3.4 或 python 3.5

【问题讨论】:

标签: python python-3.4 python-3.5


【解决方案1】:

这是基于@SOReadytoHelp 的解决方案。我将其更新为 Python 3 并包含一个示例。

def print_table(table):
    col_width = [max(len(str(x)) for x in col) for col in zip(*table)]
    for line in table:
        print("| " + " | ".join("{:{}}".format(x, col_width[i])
                                for i, x in enumerate(line)) + " |")


table = [['/', 2,    3],
         ['a', '2a', '3a'],
         ['b', '2b', '3b']]

print_table(table)

打印出来的

| / |  2 |  3 |
| a | 2a | 3a |
| b | 2b | 3b |

【讨论】:

  • FWIW,所以 ReadytoHelp 的代码实际上来自他的链接中接受的答案,该答案由Sven Marnach 编写。但是你的代码比 Sven 的要好。 :)
【解决方案2】:

我应该将此作为评论,但由于我没有足够的声誉,因此我将其发布为答案。检查this

def print_table(table):
    col_width = [max(len(x) for x in col) for col in zip(*table)]
    for line in table:
        print ("| " + " | ".join("{:{}}".format(x, col_width[i])
                                for i, x in enumerate(line)) + " |")

【讨论】:

  • 很好,但在 Python 3 中您需要在 print 周围加上括号。
  • @hyst329 感谢您的指出,做出了改变。
  • @PM2Ring 糟糕,已编辑 :)
  • Joschua 的带有max(len(str(x)) 的版本更健壮一些,因为它可以处理任何类型的对象的表,但您的不能正常处理非字符串。但这对于 OP 的要求可能没问题。
猜你喜欢
  • 1970-01-01
  • 2013-02-03
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2017-05-16
  • 2021-02-12
  • 1970-01-01
  • 2011-06-03
相关资源
最近更新 更多