2011-05-08 82 views
2

我想截斷包含在同一個字符串中的一些浮點值,但我不太確定如何繼續。在python中用多個浮點值格式化字符串

目前我正在使用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 

我沒有包括其他值。

我想循環回整個文件,並使用一些函數來循環每個字符串是要走的路?有沒有人之前做過或找到一個簡單的解決方案,我完全失蹤?

非常感謝, Ç

+0

http://docs.python.org/library/functions.html#round – 2011-05-08 17:11:14

回答

1

這裏是一個班輪:

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

,其中數據包含您的花車字符串。可能不是最有效率的,但它能完成這項工作。

+0

非常感謝!這工作得很好 – Chris 2011-05-10 15:22:58

+0

酷,我很高興它爲你工作:) – 2011-05-10 16:10:45

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

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

函數式編程岩石!順便說一下,我並不完全清楚你是在操作字符串還是浮點數組,但如果它是前者,只需將字符串拆分爲浮點數組。

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