将字符串(<;0.005)转换为浮点数(0.005)-python 2.7

将字符串(<;0.005)转换为浮点数(0.005)-python 2.7,python,string,numbers,point,floating,Python,String,Numbers,Point,Floating,我有一个列表的样本,我正在迭代,试图找到最大值,只需要数字。我忽略了空白,但是需要改变'你可以使用这个正则表达式来删除不属于数字的字符: value = re.sub(r'[^0-9.-]', '', value) 当然,它仍然会让像…5或5-5这样的东西通过,但如果你只是想摆脱前导/尾随的废话,正则表达式就完成了它的工作 lst = [[float(re.sub(r'[^0-9.-]', '', x[0]))] for x in lst if x[0].strip()] 您的问题是一个空字

我有一个列表的样本,我正在迭代,试图找到最大值,只需要数字。我忽略了空白,但是需要改变'你可以使用这个正则表达式来删除不属于数字的字符:

value = re.sub(r'[^0-9.-]', '', value)
当然,它仍然会让像
…5
5-5
这样的东西通过,但如果你只是想摆脱前导/尾随的废话,正则表达式就完成了它的工作

lst = [[float(re.sub(r'[^0-9.-]', '', x[0]))] for x in lst if x[0].strip()]

您的问题是一个空字符串(只有白色字符的字符串),而不是“您可以使用正则表达式删除所有不是数字的字符

import re

def get_num_from_str(in_str):
    return re.sub("[^0-9]", "", in_str)

现在,您可以将列表中的所有项目转换为数字

您可以使用正则表达式

import re

lst = [['<0.005'],
        ['<0.005'],
        ['2.1   '],
        ['2.1   '],
        ['1.7   '],
        ['0.098 '],
        ['      '],
        ['1.7   '],
        ['0.91  '],
        ['1.2   ']]



def findMax(ilist):
    result = 0.0
    floatPattern = re.compile('\d+.\d+')
    for el in ilist:
        myFloat = floatPattern.search(el[0])
        if myFloat != None:
            if result < float(myFloat.group()):
                result = float(myFloat.group())
    return result


print findMax(lst)
重新导入

lst=[['
第2行跳过空字符串,浮点(lst)永远不会在空字符串上执行。我的意思是“仅由白色字符组成”“…看看你的数据…
”!='
@lejlot:是的…它确实如此-但以一种非常疯狂的方式,它将无法获得任何其他值。啊,是的,为了清楚起见,我把那些空白放进去了,它们不是他们的数据,对不起。”
for i in range(0,9):
    if lst[i][0].strip() != '':
       if lst[i][0] == '<0.005':
          lst[i][0] = 0.005
       elif float(lst[i][0]) > maxP[i][0]:
            maxP[i][0] = lst[i][0]
import re

def get_num_from_str(in_str):
    return re.sub("[^0-9]", "", in_str)
import re

lst = [['<0.005'],
        ['<0.005'],
        ['2.1   '],
        ['2.1   '],
        ['1.7   '],
        ['0.098 '],
        ['      '],
        ['1.7   '],
        ['0.91  '],
        ['1.2   ']]



def findMax(ilist):
    result = 0.0
    floatPattern = re.compile('\d+.\d+')
    for el in ilist:
        myFloat = floatPattern.search(el[0])
        if myFloat != None:
            if result < float(myFloat.group()):
                result = float(myFloat.group())
    return result


print findMax(lst)