2016-07-14 25 views
1

我有這樣的數據:String數組數據需要被剝離美元符號,變成一個浮動

['$15.50'] 
['$10.00'] 
['$15.50'] 
['$15.50'] 
['$22.28'] 
['$50'] 
['$15.50'] 
['$10.00'] 

我想擺脫的美元符號,把字符串變成浮動,所以我可以使用幾個計算的數字。我試過以下內容:

array[0] = float(array.text.strip('$')) 

它給了我一個屬性錯誤,因爲顯然'list'對象沒有'text'屬性。我的錯。是否有類似的方式讓'list'對象被剝離?任何其他建議也會受到歡迎。提前致謝。

+1

我已經跨越了另一個問題碰撞。我的列表比我提供的例子更長,並且一些數字在它們中包含逗號,這使得float()命令不穩定。這意味着我必須從逗號中刪除它,但這似乎與我用於美元符號的方法不一樣。 – sepideh

回答

0

用正則表達式:

import re 
array = ([float(re.sub("\$","",x)) for x in array]) 

如果 '$' 是不是在字符串的結束或開始

0

這應該這樣做:

[float(s.replace(',', '.').replace('$', '')) for s in array] 

我已經採取了自由改變,以考慮更廣泛的測試案例數據:

array = ['$15.50', 
     '$ 10.00', 
     ' $15.50 ', 
     '$15,50', 
     '$22,28 ', 
     ' 10,00 $ '] 

這是你會得到什麼:

In [8]: [float(s.replace(',', '.').replace('$', '')) for s in array] 
Out[8]: [15.5, 10.0, 15.5, 15.5, 22.28, 10.0]