2015-06-27 53 views
0
regex= '<th scope="row" width="48%">52wk Range:</th><td class="yfnc_tabledata1"><span>(.+?)</span> - <span>(.+?)</span></td>' 
    pattern = re.compile(regex) 
LBUB = re.findall(pattern,htmltext) 

我想在Python中進行基本數據抓取並對返回的實數執行一些計算。我已經展示了該程序的一小部分摘要,以便您可以瞭解基本想法。我希望它讀取一個html文件並返回一定的數字。 問題是,真正的數字是這樣一個字符串變量內返回...如何從Python中的字符串提取多個浮點數?

[('90.77', '134.54')] 

我想從變量中提取的號碼,這樣他們可以作爲單獨的浮點型變量。 有人知道如何從字符串變量中提取兩個實數,基本上擺脫了')],這是在Python 2.7.10

回答

1

如果你正在獲取數組,然後你可以使用浮點數()函數,並把在數組的索引,例如:

StrFloats = [("90.77","134.54")] 
FltNewNums = {} 
IntInd = 0 
for IntX in range(0,len(StrFloats)): 
    for IntY in range(0,len(StrFloats[IntX])): 
     FltNewNums[IntInd] = float(StrFloats[IntX][IntY]) 
     IntInd += 1 

那麼你有浮動變量數組

我不得不做出一些改變。忘了元組:/ 這應該工作:)

+0

它無法處理字符串中的符號,所以它只是作爲錯誤出現。 –

+0

什麼符號,你得到他們在問題中的陣列? [('90 .77','134.54')] –

+1

不錯的,它的工作原理。謝謝 –

0

這看起來像工作的map

list(map(lambda t: (float(t[0]), float(t[1])), LBUB)) 

爲了避免類型錯誤而鑄造浮動,您可以使用較窄的捕獲組。

喜歡的東西:

(\d+\.\d+) 

反正,用正則表達式解析HTML通常是not a good idea

相關問題