2

我是 python 新手,我的问题似乎很愚蠢,当我用谷歌搜索时,我什至找不到答案......

我正在编写一个程序,该程序使用不同行星及其卫星的数据,进行一些计算以获得行星的质量,然后应该将计算出的数据呈现在表格中。

桌子是我的问题。我正在使用列表,但是当我打印我创建的表格时,它看起来很糟糕。

到目前为止,这是我的代码:

table = [["Typ av data", "Jupiter", "Saturnus", "Solen"],
     ["Planetmassa", jupiter_massa, saturnus_massa, solen_massa],
     ["Standardavvikelse", jupiter_standardavvikelse, saturnus_standardavvikelse, solen_standardavvikelse]]
for row in table:
   print(row)

(它是瑞典语,但没关系。带有“”的单词只是单词/字符串,其余的是包含数据的列表。)

这是我打印时的样子:

['Typ av data', 'Jupiter', 'Saturnus', 'Solen']
['Planetmassa', 4.110628390867864e+39, 1.2347845577268216e+39, 4.319543783963521e+42]
['Standardavvikelse', 2.3357256803779513e+37, 8.050789009367835e+36, 1.9328559536580606e+40]

如果可能的话,我想去掉括号和'',但最重要的是 - 我希望它显示为具有固定列宽的正确表格。就像我说的我已经用谷歌搜索但找不到一个答案(也许我只是愚蠢)。我也尝试安装诸如 prettytable 和 texttable 之类的模块,但它似乎在我的计算机上不起作用,所以我需要使用已经存在的模块。

那么 - 如何修复列宽?

我希望这是有道理的,并且有人可以帮助我,因为我要疯了。如果您需要更多信息,请告诉我。

4

2 回答 2

2

首先,打印一个列表将显示该列表的表示形式。

>>> l = ['1', '2', '3']
>>> print l
['1', '2', '3']

要单独打印项目,您可以执行多项操作。

您可以将它们分别打印在自己的行上,

>>> for i in l:
    print i

1
2
3

或者,您可以使用字符串格式对其进行格式化。

>>> print "%s" % ', '.join(l)
1, 2, 3

否则,如果您想自动创建表格,您可以使用一些模块,例如CSVprettytable

来自网站的漂亮表示例:

PrettyTable 是一个简单的 Python 库,旨在使其在视觉上吸引人的 ASCII 表中快速轻松地表示表格数据,如下所示:

+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide  | 1295 |  1158259   |      600.5      |
| Brisbane  | 5905 |  1857594   |      1146.4     |
| Darwin    | 112  |   120900   |      1714.7     |
| Hobart    | 1357 |   205556   |      619.5      |
| Melbourne | 1566 |  3806092   |      646.9      |
| Perth     | 5386 |  1554769   |      869.4      |
| Sydney    | 2058 |  4336374   |      1214.8     |
+-----------+------+------------+-----------------+

PrettyTable 允许您控制表格的许多方面,例如列填充的宽度、列内文本的对齐方式、用于绘制表格边框的字符、是否需要边框等等。您可以控制打印哪些列和行的子集,并且可以按特定列的值对行进行排序。

于 2013-04-07T14:38:28.047 回答
0

做一个简单的表

from beautifultable import BeautifulTable


table = BeautifulTable()
table.column_headers = ["", 'Jupiter', 'Saturnus', 'Solen']
table.append_row(['Planetmassa', round(4.110628390867864,3),  round(1.2347845577268216,3),  round(4.319543783963521,3)])
table.append_row(['Standardavvikelse', 1,2, 7])

print(table)

你会得到的

样本行星表

于 2021-03-18T11:35:40.967 回答