在Python中打印表格数据

11

Python中打印表格数据的最佳方式是什么?假设数据以2D列表的形式存在,我想创建一个漂亮的表格。实际上,我有一个字典列表,并且我想根据字典中的值打印交集。类似于:

for val1 in my_dict:
   for val2 in my_dict:
    if val1['a'] > val2['a']:
      print 'x'

是否有现成的实现方式,或者我必须自己编写?要求每一列都是固定宽度。Writer 和 formatter 类似乎是可行的领域,但与 Perl 的格式化程序相比,这些类使用起来仍然很复杂。


我认为你可能想尝试使用pprint(是的,两个“p”)。虽然我自己不用它,但我曾看到其他人在类似的情况下使用它,因此这里有所耳闻。 - inspectorG4dget
我已经查看了pprint,但我不知道如何以我需要的方式使用它。 - Makis
2
可能的重复问题已经有更多的投票和答案:https://dev59.com/8Wkw5IYBdhLWcg3w9vJ-。请始终给出明确的期望输出示例 =) - Ciro Santilli OurBigBook.com
可能是 如何使用Python美化打印ASCII表格? 的重复。 - ivan_pozdeev
这个回答解决了你的问题吗?将列表打印为表格数据 - Gino Mempin
3个回答

15
print "%20s" % somevar 

会打印值为“somevar”的结果,最多使用20个空格。在print语句后面添加逗号以避免换行-当然:请阅读“%”运算符的string formatting operations docs文件。


9

您了解PyPi吗?

DataGridPrettyTable 看起来是我在简短搜索中找到的两个不错的替代方案。在将数据发送到提供的例程之前,您可能需要按自己想要的格式组装数据(使用“x”表示条件为真)。


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)

请查看此处了解详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接