在python中格式化具有多个浮点值的字符串

时间:2011-05-08 17:07:20

标签: python xml string formatting

我试图截断同一个字符串中包含的一些浮点值,但我不太清楚如何继续。

目前我正在使用Python xml.dom.minidom使用Node.toxml()写出一些xml。我有类似的东西:

1.471392 0.740274 0.659904 -0.560021 1.312128 -0.697930 1.557193 5.156295 2.279541 -0.760170 -0.778676 
-4.882018 0.872503 0.553950 4.468880 -0.793693 0.572676 0.521594 -1.535048 -0.736827 -3.014793 12.288257   
5.243127 -0.850610 2.382368 2.183009 0.733634 0.669893 -0.658211 -1.229626 6.780756 -0.608808 -0.914032 

但我想将每个浮点值截断为2位小数,因此第一个值看起来像:

1.47 0.74 

我没有包含其他值。

我想循环回整个文档并使用一些函数循环遍历每个字符串是要走的路?有没有人以前做过这个或发现一个我完全不知道的简单解决方案?

非常感谢, ç

3 个答案:

答案 0 :(得分:1)

这是一个单行:

" ".join([str(round(float(i),2)) for i in data.split(' ')])

其中data包含您的浮点字符串。可能不是最有效率的,但它确实有效。

答案 1 :(得分:1)

>>> '%.2f' % (1.471392,)
'1.47'

答案 2 :(得分:0)

def round_2(f):
    return round(f, 2)

>>> map(round_2, [1.3234254, 2.33521453])
[1.32, 2.34]

功能编程摇滚!

顺便说一下,我并不完全清楚你是在操作一个字符串,还是一个浮点数组,但如果它是前者,那么首先将字符串拆分成一个浮点数组。