如何从Python中的字符串提取多个浮点数?
问题描述:
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
答
如果你正在获取数组,然后你可以使用浮点数()函数,并把在数组的索引,例如:
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
那么你有浮动变量数组
我不得不做出一些改变。忘了元组:/ 这应该工作:)
答
这看起来像工作的map
list(map(lambda t: (float(t[0]), float(t[1])), LBUB))
为了避免类型错误而铸造浮动,您可以使用较窄的捕获组。
喜欢的东西:
(\d+\.\d+)
反正,用正则表达式解析HTML通常是not a good idea。
它无法处理字符串中的符号,所以它只是作为错误出现。 –
什么符号,你得到他们在问题中的阵列? [('90 .77','134.54')] –
不错的,它的工作原理。谢谢 –