Python格式表格输出

参见英文答案 > Printing Lists as Tabular Data                                    12个
使用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格式表格输出 - 代码日志