首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将列表打印为表格?

将列表打印为表格?
EN

Stack Overflow用户
提问于 2018-01-08 05:38:33
回答 2查看 0关注 0票数 0

我对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

我有一个预感,有一个这样的数据结构,但我找不到它。我已经尝试使用字典和格式化打印,我已经尝试了与缩进循环,我已经尝试打印为字符串。

我相信肯定有一个非常简单的方法来做到这一点,但由于缺乏经验,我可能会错过它。

EN

Stack Overflow用户

发布于 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. PrettyTablehttps//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. texttablehttps//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可以控制水平/垂直对齐,边框样式和数据类型。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档