Python报错解决:'int'对象无'isdigit'属性,过滤数组非整数元素
问题解决:过滤数组中的整数元素
你代码报错的核心原因是:isdigit()和isnumeric()都是字符串类型的专属方法,当循环到数组里的整数(比如1、8)时,直接调用这些方法会触发AttributeError——整数对象根本没有这些属性。
这里给你两种可行的修正方案:
方案一:直接过滤整数类型元素
如果你的需求只是排除数组里的整数对象,直接用类型判断即可:
array = ["hello", "hey", 1, "sup", 8] for x in array: if isinstance(x, int): continue print(x)
isinstance(x, int)会准确判断元素是否为整数类型,是的话跳过循环,否则打印元素。
方案二:同时过滤整数和字符串形式的数字
如果你的数组里可能存在像"123"这样的字符串数字,也需要一起排除,可以这样写:
array = ["hello", "hey", 1, "sup", 8, "123"] for x in array: if isinstance(x, int): continue if isinstance(x, str) and x.isdigit(): continue print(x)
先判断是否为整数,再判断是否是字符串类型的数字,双重过滤后打印符合要求的元素。
内容的提问来源于stack exchange,提问作者vuhkoi
相关产品推荐
相关产品推荐

