列表理解替换非浮点数或整数的项目
作者:互联网
我有一个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