在Python中打印表格数据
在Python中,打印表格数据的最佳方法是什么呢?假设数据存储在一个二维列表中,我想创建一个看起来不错的表格。实际上,我有一个字典的列表,我想根据字典中的值打印出交集。就像这样:
for val1 in my_dict:
for val2 in my_dict:
if val1['a'] > val2['a']:
print 'x'
但我希望每一列的宽度是固定的。虽然有一些写入和格式化的类,看起来是可以做到的,但相比于,比如说Perl的格式化工具,使用起来还是显得复杂。
有没有现成的实现,还是说我需要自己写一个?
3 个回答
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)
想了解更多细节,可以查看这个链接。
15
print "%20s" % somevar
这段代码会打印出'somevar'这个值,并且会占用最多20个空格。如果你想避免换行,可以在打印语句后面加一个逗号。当然,你也可以去看看关于'%'操作符的字符串格式化操作文档,了解更多内容。
9
你知道什么是 PyPi 吗?
我简单搜索了一下,发现 DataGrid 和 PrettyTable 这两个工具看起来不错。你可能需要先把数据整理成你想要的格式(比如用“x”表示条件成立时的情况),然后再把这些数据传给提供的功能。