如何从Python中的字符串中提取多个浮点数?

时间:2015-06-27 17:56:27

标签: python string extract

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文件并返回某些数字。 问题是实数是在像这样的字符串变量中返回的......

[('90.77', '134.54')]

我想从变量中提取数字,以便它们可以用作单独的float变量。 有没有人知道如何从字符串变量中提取两个实数,基本上摆脱了')],这是在Python 2.7.10中

2 个答案:

答案 0 :(得分:1)

如果您正在获取数组,那么您可以使用Float()函数并将数组索引放入。例如:

    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

然后你有一个数组中的float变量

我不得不做一些改变。忘了元组:/ 这应该工作:)

答案 1 :(得分:0)

这看起来像map

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

为了避免在转换为浮动时出现TypeError,您可以使用更窄的捕获组。

类似的东西:

(\d+\.\d+)

无论如何,使用正则表达式解析HTML通常为not a good idea