其他分享
首页 > 其他分享> > 列表理解替换非浮点数或整数的项目

列表理解替换非浮点数或整数的项目

作者:互联网

我有一个2项目清单.

输入样例:

['19(1,B7)', '20(1,B8)']
['16 Hyp', '16 Hyp']
['< 3.2', '38.3302615548213']
['18.6086945477694', '121.561539536844']

我需要查找任何不是float或int的东西并将其删除.所以我需要上面的列表看起来像是:

['19(1,B7)', '20(1,B8)']
['16 Hyp', '16 Hyp']
['3.2', '38.3302615548213']
['18.6086945477694', '121.561539536844']

我写了一些代码来查找’>并拆分第一项,但我不确定如何让“新项”代替旧项:

这是我当前的代码:

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

for i in range(0,len(result_rows)):
    out_row = []
    for j in range(0,len(result_rows[i])-1):
        values = result_rows[i][j].split('+')
            for items in values:
                if '> ' in items:
                newItem=items.split()
                for numberOnly in newItem:
                   if is_number(numberOnly):
                      values.append(numberOnly)

该输出(打印(值))为

['< 3.2', '38.3302615548213', '3.2']

解决方法:

这看起来更像是一种真正的列表理解方法,可以完成您想要的…

def isfloat(string):
    try:
        float(string)
        return True
    except:
        return False

[float(item) for s in mylist for item in s.split() if isfloat(item)]
#[10000.0, 5398.38770002321]

或删除float()以将项目作为字符串获取.仅当“>”时才可以使用此列表推导或“<”在字符串中找到.

标签:python-3-3,python,list,list-comprehension
来源: https://codeday.me/bug/20191010/1884348.html