使用{0:g}去除尾随零时.format()返回ValueError
我正在尝试生成一个字符串,这个字符串中偶尔会有带有尾随零的小数。我这里有一个简单的例子,展示了我用 {0:g}
来去掉这些尾随零的尝试:
xn, cod = 'r', 'abc'
ccl = [546.3500, 6785.35416]
ect = [12.350, 13.643241]
text = '${}_{{t}} = {0:g} \pm {0:g}\;{}$'.format(xn, ccl[0], ect[0], cod)
print text
可惜的是,这样返回的是:
ValueError: cannot switch from automatic field numbering to manual field specification
这个问题在 使用 .format() 来格式化带有字段宽度参数的列表 中也提到过,但我还是搞不清楚如何把那里的答案应用到我的问题上。
1 个回答
14
{}
是自动字段编号的用法。{0:g}
则是手动字段编号的用法。
不要把这两种方式混在一起。如果你决定使用手动字段编号,那就要在所有地方都使用它:
text = '${0}_{{t}} = {1:g} \pm {2:g}\;{3}$'.format(xn, ccl[0], ect[0], cod)