通过使用变量在 .format() 中设置精度

Setting precision in .format() via use of a variable

如果我有以下情况;

dimensions={
"length" : 1.3576
}

out1 = "l = {length:.3f} mm".format(**dimensions)

但是,我不想在字符串中指定 .3f,而是想通过变量指定它。
以下确实有效:

precision=".2f"
out2 = "l = {length:"+str(precision)+"} mm"
print(out2)
out2=out2.format(**dimensions)
print(out2)

给出:

l = {length:.2f} mm
l = 1.36 mm

但这感觉像是一项艰巨的工作。有没有更好的方法?

您可以嵌套替换格式:

>>> precision = '.3f'
>>> out1 = "l = {length:{precision}} mm".format(precision=precision, **dimensions)
>>> out1
'l = 1.358 mm'

语法看起来有点奇怪但完全有效!