lrs*_*rsp 4 python format tabulate
我正在使用 tabulate 0.75 生成 LaTeX 表。生成表格的函数 tabulate 有一个内置函数来格式化输入。但我想定义每列本身的小数位数。例如
a b
18.12 16
17.47 15
Run Code Online (Sandbox Code Playgroud)
这是内置函数 (floatfmt=".2f"),它运行完美 - 但它对每一列的作用都是相同的。
tabulate(tables[i], headers[i], numalign="center", tablefmt="latex_booktabs", floatfmt=".2f")
Run Code Online (Sandbox Code Playgroud)
我通过以下方式获取我的数据
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
Run Code Online (Sandbox Code Playgroud)
我在列表中使用 ufloat
array123 = ufloat(nominalvalues, errors)
Run Code Online (Sandbox Code Playgroud)
经常这样做是因为它使处理错误变得非常容易。有谁知道一种简单的格式化方法吗?
"{:.2f}".format(unumpy.nominal_values(E))
TypeError: non-empty format string passed to object.__format__
Run Code Online (Sandbox Code Playgroud)
这不行。
提前致谢。
从文档中:
floatfmt参数可以是格式字符串的列表或元组,每列一个,在这种情况下,每列可能具有不同的数字格式:Run Code Online (Sandbox Code Playgroud)>>> print tabulate([[0.12345, 0.12345, 0.12345]], floatfmt=(".1f", ".3f")) --- ----- ------- 0.1 0.123 0.12345 --- ----- -------
这应该会让你的代码更整洁一些。