参见英文答案 > Printing Lists as Tabular Data????????????????????????????????????12个
使用python2.7,我正在尝试打印到屏幕表格数据.
这大致是我的代码:
for i in mylist:
print "{}|{}|".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)