我有一个float列表,我使用以下方法将它们组成一个字符串:
import json
a = [1.2, 2.9, 7.4]
str = "\t".join(format(x,"10.3f") for x in a)
print json.dumps(str)
然而str
的最终结果包含这样的前导空格:
" 1.200\t 2.900\t 7.400"
我怎样才能得到这种结果:
"1.200\t2.900\t7.400"
答案 0 :(得分:1)
您必须剥离(使用strip()
)生成器表达式的元素:
s = "\t".join(format(x, "10.3f").strip() for x in a)
<强>演示:强>
import json
a = [1.2, 2.9, 7.4]
s = "\t".join(format(x, "10.3f").strip() for x in a)
print json.dumps(s) # "1.200\t2.900\t7.400"
注意:强>
str
作为变量的名称,因为它会隐藏str
的内置实现。答案 1 :(得分:1)
由于您指定的格式,数字会被填充为10个字符。
尝试使用0
作为宽度说明符来获取&#34;数字类型的零填充&#34;:
str = "\t".join(format(x,"0.3f") for x in a)
看看python文档: https://docs.python.org/2/library/string.html#format-specification-mini-language