【发布时间】:2017-03-19 05:02:19
【问题描述】:
如何在 python 中制作表格。我在学校这样做,我不允许任何额外的插件,如制表或文本表和漂亮的表格,所以你能指导我如何做到这一点,谢谢它适用于 python 3.4 或 python 3.5
【问题讨论】:
标签: python python-3.4 python-3.5
如何在 python 中制作表格。我在学校这样做,我不允许任何额外的插件,如制表或文本表和漂亮的表格,所以你能指导我如何做到这一点,谢谢它适用于 python 3.4 或 python 3.5
【问题讨论】:
标签: python python-3.4 python-3.5
这是基于@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 |
【讨论】:
我应该将此作为评论,但由于我没有足够的声誉,因此我将其发布为答案。检查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)) + " |")
【讨论】:
print 周围加上括号。
max(len(str(x)) 的版本更健壮一些,因为它可以处理任何类型的对象的表,但您的不能正常处理非字符串。但这对于 OP 的要求可能没问题。