l = ["python", "c++", "php", "java",3.5,"3.14",5.8, "2.1.1", "-3.2", 0, -1]
def filter_num(l):
def v(x):
try:i = True if type(float(x)) ==float else False
except: i = False
return i
return list(filter(v, l))
res = filter_num(l)
print(res)
def filter_num(arr):
a = []
for i in arr:
if type(i)!= str:
if type(i) == int and i<0:
pass
else:
a.append(i)
return a
第一个if筛掉str,第二个去掉负数
def filter_num(arr):
res = []
for origin in arr:
try:
i = float(origin)
except Exception as e:
i = None
if i is not None:
res.append(origin)
return res
print(filter_num(["111fasdf", "3.5", "dasf", "-2.4", "ddfsa", "0.2", 1]))