在Python中打印表格数据的最佳方法是什么?假设数据在2D列表中,我想创建一个智能外观的表。我实际拥有的是一个字典列表,我想根据字典中的值打印一个交集。像
这样的东西for val1 in my_dict:
for val2 in my_dict:
if val1['a'] > val2['a']:
print 'x'
但是这样每个列的宽度都是固定的。 Writer和格式化程序类似乎是可能性的东西,但与Perl的格式化程序相比,它仍然看起来很复杂。
是否有任何现有的实现,还是我必须自己编写?
答案 0 :(得分:15)
print "%20s" % somevar
将打印值'somevar'并使用最多20个空格。在print语句后面添加一个逗号以避免换行 - 当然:阅读'%'运算符上的string formatting operations docs
答案 1 :(得分:9)
您知道PyPi吗?
DataGrid和PrettyTable似乎是我通过简短搜索找到的两个不错的选择。您可能必须以所需的格式汇编数据(在条件为真时使用“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了解详情。