如何用isinstance判断列表是否仅包含整数类型
如何判断列表中所有元素均为整数类型
首先要明确:isinstance(lst, list[int])无法实现需求,因为list[int]是静态类型提示,运行时Python会忽略泛型参数,这个判断只会检查变量是否为列表,不会验证元素类型。
以下是两种可行的实现方式:
方式一:用all()配合isinstance遍历检查
直接通过生成器表达式遍历列表元素,结合all()函数判断所有元素是否为整数:
lst = [1, 2, 3] result = all(isinstance(item, int) for item in lst) print(result) # 输出 True
- 只要列表中有一个元素不是
int类型,all()就会返回False。
方式二:封装为可复用的函数
如果需要多次进行这类判断,可以封装成函数,先确认输入是列表,再检查元素:
def is_all_integers(lst): if not isinstance(lst, list): return False return all(isinstance(item, int) for item in lst) # 测试示例 print(is_all_integers([1, 2, 3])) # True print(is_all_integers([1, "2", 3])) # False print(is_all_integers("not a list")) # False
内容的提问来源于stack exchange,提问作者apostofes
相关产品推荐
相关产品推荐

