如何用Python列表推导式过滤混合类型列表中的整数元素
筛选混合列表中整数元素的Python列表推导式写法
基础实现(适配绝大多数场景)
直接通过isinstance()判断元素类型即可,对应代码如下:
list1 = ['a', 'b', 'c', 'd',5,4,433,"fdff",44,2323] int_list = [x for x in list1 if isinstance(x, int)]
运行后得到的int_list结果为[5, 4, 433, 44, 2323],完全符合筛选要求。
特殊场景调整
- 如果你需要排除布尔值(Python中
bool是int的子类,isinstance(True, int)会返回True,可能导致True/False被误筛),可以调整筛选条件:int_list = [x for x in list1 if isinstance(x, int) and not isinstance(x, bool)] - 如果你只需要匹配严格的int类型、不需要兼容int子类,也可以用
type()判断:int_list = [x for x in list1 if type(x) is int]
内容的提问来源于stack exchange,提问作者mscin it
相关产品推荐
相关产品推荐

