我对Python非常陌生,现在我正在努力将我的数据格式化并打印输出。
我有一个用于两个标题的列表,以及一个应该是表格内容的矩阵。像这样:
teams_list = ["Man Utd", "Man City", "T Hotspur"]
data = np.array([[1, 2, 1],
[0, 1, 0],
[2, 4, 2]])
请注意,标题名称不一定是相同的长度。尽管如此,数据条目都是整数。
现在,我想用表格的形式来表示,如下所示:
Man Utd Man City T Hotspur
Man Utd 1 0 0
Man City 1 1 0
T Hotspur 0 1 2
我有一个预感,有一个这样的数据结构,但我找不到它。我已经尝试使用字典和格式化打印,我已经尝试了与缩进循环,我已经尝试打印为字符串。
我相信肯定有一个非常简单的方法来做到这一点,但由于缺乏经验,我可能会错过它。
发布于 2018-01-08 15:23:57
有一些轻量级的Python包:
1.列表:https: //pypi.python.org/pypi/tabulate
>>> from tabulate import tabulate
>>> print tabulate([['Alice', 24], ['Bob', 19]], headers=['Name', 'Age'])
Name Age
------ -----
Alice 24
Bob 19
制表有许多选项来指定标题和表格格式。
>>> print tabulate([['Alice', 24], ['Bob', 19]], headers=['Name', 'Age'], tablefmt='orgtbl')
| Name | Age |
|--------+-------|
| Alice | 24 |
| Bob | 19 |
2. PrettyTable:https://pypi.python.org/pypi/PrettyTable
>>> from prettytable import PrettyTable
>>> t = PrettyTable(['Name', 'Age'])
>>> t.add_row(['Alice', 24])
>>> t.add_row(['Bob', 19])
>>> print t
+-------+-----+
| Name | Age |
+-------+-----+
| Alice | 24 |
| Bob | 19 |
+-------+-----+
PrettyTable有从csv,html,sql数据库读取数据的选项。你也可以选择数据的子集,排序表和更改表格样式。
3. texttable:https://pypi.python.org/pypi/texttable
>>> from texttable import Texttable
>>> t = Texttable()
>>> t.add_rows([['Name', 'Age'], ['Alice', 24], ['Bob', 19]])
>>> print t.draw()
+-------+-----+
| Name | Age |
+=======+=====+
| Alice | 24 |
+-------+-----+
| Bob | 19 |
+-------+-----+
texttable可以控制水平/垂直对齐,边框样式和数据类型。
https://stackoverflow.com/questions/-100001333
复制相似问题