如何在简单的python表中进行正确的对齐?

时间:2013-04-07 14:34:12

标签: python alignment tabular

我是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这样的模块,但它似乎不适用于我的计算机,所以我需要处理已经存在的模块。

那么 - 如何修复列宽?

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

2 个答案:

答案 0 :(得分: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示例:

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

答案 1 :(得分:0)

做一个简单的表格

从 beautifultable 导入 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)

你会得到它

enter image description here