我有一个这样的列表:
mylist = [1.0,2.0,3.0,4.0,...,u'*52', u'14*', u'16*',"", "" ,"",...]
它主要包含float、unicodes 和blank(string?)。 (它也可以有其他数据类型)
我的目标是从列表中删除任何不能转换为整数的项目。
我试过像这样使用 .isdigit():
newlist= [i for i in mylist if i.isdigit()]
但我最终遇到了AttributeError:
AttributeError: 'float' object has no attribute 'isdigit'
什么是干净整洁的方法(不使用太多 if/else 或 try/except 子句)来实现这一点?
我正在使用 python 2.7
请您参考如下方法:
你可以使用辅助函数:
def convertible(v):
try:
int(v)
return True
except (TypeError, ValueError):
return False
newlist = [i for i in mylist if convertible(i)]
