在Python中打印表格数据

时间:2011-02-25 20:38:19

标签: python tabular

在Python中打印表格数据的最佳方法是什么?假设数据在2D列表中,我想创建一个智能外观的表。我实际拥有的是一个字典列表,我想根据字典中的值打印一个交集。像

这样的东西
for val1 in my_dict:
   for val2 in my_dict:
    if val1['a'] > val2['a']:
      print 'x'

但是这样每个列的宽度都是固定的。 Writer和格式化程序类似乎是可能性的东西,但与Perl的格式化程序相比,它仍然看起来很复杂。

是否有任何现有的实现,还是我必须自己编写?

3 个答案:

答案 0 :(得分:15)

print "%20s" % somevar 

将打印值'somevar'并使用最多20个空格。在print语句后面添加一个逗号以避免换行 - 当然:阅读'%'运算符上的string formatting operations docs

答案 1 :(得分:9)

您知道PyPi吗?

DataGridPrettyTable似乎是我通过简短搜索找到的两个不错的选择。您可能必须以所需的格式汇编数据(在条件为真时使用“x”),然后再将其发送到提供的例程。

答案 2 :(得分:6)

以下是编写正方形和立方体表的两种方法:

for x in range(1, 11):
    print repr(x).rjust(2), repr(x*x).rjust(3),print repr(x*x*x).rjust(4)

for x in range(1,11):
    print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)

查看this了解详情。