制表:为每列定义floatfmt

时间:2017-01-29 20:52:25

标签: python format

我使用制表0.75来生成LaTeX表。 生成我的表的函数列表具有内置函数来格式化输入。 但我想为每列本身定义小数位数。例如,

a      b
18.12  16
17.47  15

这是内置函数(floatfmt =" .2f"),它可以很好地工作 - 但它对每一列都起作用。

tabulate(tables[i], headers[i], numalign="center", tablefmt="latex_booktabs", floatfmt=".2f")

我通过

获取数据
tables = [(list(zip(
                unumpy.nominal_values(dt),
                unumpy.nominal_values(U),
                unumpy.nominal_values(I),
                unumpy.nominal_values(E),
                unumpy.std_devs(E)))), ............and so on

我在我的名单中使用ufloat

array123 = ufloat(nominalvalues, errors)

经常因为它使错误处理非常容易。有谁知道一种简单的格式化方法?

"{:.2f}".format(unumpy.nominal_values(E))
TypeError: non-empty format string passed to object.__format__

这不起作用。

提前致谢。

1 个答案:

答案 0 :(得分:1)

来自documentation

  

floatfmt参数可以是格式字符串的列表或元组,一个   每列,在这种情况下,每列可能具有不同的数字   格式:

>>> print tabulate([[0.12345, 0.12345, 0.12345]], floatfmt=(".1f", ".3f"))
--- ----- -------
0.1 0.123 0.12345
--- ----- -------

这应该让你的代码更整洁。