Python 格式的表格输出

标签 python

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

这大概是我的代码的样子:

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

问题是,根据 if(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 格式的表格输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8356501/

相关文章:

python - 如何制作解锁屏幕功能,并在成功登录 django 后在锁定之前引用他们打开的上一页

python - 如何对数组中的范围值求和,其中每行都有不同的范围

Python 和 Gtk - 使用的是哪个 GTK 版本?

Python - 如何在字典的顶部插入一个元素?

python - 如何将文件中的单词插入列表中?

python - 如何在与导入模块同名的包中导入 Python 模块?

python - 使用管道将数据从 C 进程发送到 Python 进程

python - 在 Linux 上运行的 Python 脚本如何调用在 Wine 下运行的 Python 脚本中的例程?

python - 在 python 中定义一组(可能是分层的)常量的最佳方法是什么?

python - 如何从时间戳列生成 TimedeltaIndex,其中每个 TimeDelta 都是引用前一个时间戳生成的