Python 使用 tabulate 打印列表

2024-03-27

我正在尝试打印天文学模拟的输出,以便它在我的控制台中看起来不错。我生成了 4 个 numpy 数组,分别称为振幅、质量、周期和偏心率,我想将它们放在一个表中。每个数组的第一个索引是行星 1 的值,第二个索引是行星 2 的值,依此类推。

所以我的数组看起来像(值都是浮点数,例如“a1”只是一个占位符):

amp = [a1 a2 a3 a4]
mass = [m1 m2 m3 m4]
period = [p1 p2 p3 p4]
ecc = [e1 e2 e3 e4]

我希望我的桌子看起来像:

planet|amp|mass|period|ecc
1     |a1 |m1  |p1    |e1
2     |a2 |m2  |p2    |e2
...

我尝试过使用 tabulate 和类似的东西:

print tabulate(['1', amp[0], mass[0], period[0], ecc[0]], headers=[...])

但我收到“numpy.float64”对象不可迭代的错误

任何帮助,将不胜感激!


您可以结合使用zip() https://docs.python.org/3/library/functions.html#zip with tabulate https://pypi.python.org/pypi/tabulate创建一个看起来更漂亮的表格:

from tabulate import tabulate
headers = ['planet', 'amp', 'mass', 'period', 'ecc']    

amp = [1.1, 1.2, 1.3, 1.4]
mass = [2.1, 2.2, 2.3, 2.4]
period = [3.1, 3.2, 3.3, 3.4]
ecc = [4.1, 4.2, 4.3, 4.4]
planet = range(1, len(amp)+1)

table = zip(planet, amp, mass, period, ecc)
print(tabulate(table, headers=headers, floatfmt=".4f"))

Output:

  planet     amp    mass    period     ecc
--------  ------  ------  --------  ------
       1  1.1000  2.1000    3.1000  4.1000
       2  1.2000  2.2000    3.2000  4.2000
       3  1.3000  2.3000    3.3000  4.3000
       4  1.4000  2.4000    3.4000  4.4000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 使用 tabulate 打印列表 的相关文章

随机推荐