Skip to main content
 首页 » 编程设计

python : Clean and efficient way to remove items that are not convertable to int from list

2025年05月04日9qq78292959

我有一个这样的列表:

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)]