Python格式表格输出

使用python2.7,我试图打印到屏幕表格数据。

这大概是我的代码所示:

for i in mylist:
   print "{}\t|{}\t|".format (i, f(i))

问题是,根据i或f(i)的长度,数据将不会对齐。

这是我得到的:

|foo |bar |
|foobo   |foobar  |

我想要得到的

|foo     |bar     |
|foobo   |foobar  |

有没有允许这样做的模块?

最佳答案
滚动自己的格式化功能并不是很难:

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)) + " |"

table = [(str(x), str(f(x))) for x in mylist]
print_table(table)

转载注明原文:Python格式表格输出 - 代码日志