我是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这样的模块,但它似乎不适用于我的计算机,所以我需要处理已经存在的模块。
那么 - 如何修复列宽?
我希望这是有道理的,有人可以帮助我,因为我会发疯。如果您需要更多信息,请告诉我。
答案 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
否则,如果您想自动创建表格,可以使用CSV或prettytable等模块。
来自网站的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)
你会得到它