如何检查Python列表中指定元素是否为数值类型?
检查列表中age和income的数值类型方法
因为你的数据是Python原生嵌套列表,不是pandas DataFrame,所以没法用.dtypes,直接用Python原生的类型检查工具就能搞定:
方法一:逐个检查每个元素的类型
遍历列表里的每一组数据,用isinstance()函数判断age和income是否为int或float类型:
vals = [[37, 48701.413701616024, 'f'], [57, 55559.77744809075, 'f'], [21, 44217.05520426258, 'm'], [64, 57313.15824195174, 'm'], [31, 48504.05753555914, 'f'], [77, 57761.55864292855, 'f'], [58, 54295.161011633056, 'm']] for age, income, _ in vals: # 检查age类型 print(f"当前age值 {age} 的类型: {type(age)}, 是否为数值: {isinstance(age, (int, float))}") # 检查income类型 print(f"当前income值 {income} 的类型: {type(income)}, 是否为数值: {isinstance(income, (int, float))}")
方法二:批量验证所有元素是否符合要求
如果想一次性确认所有age和income都是数值类型,用all()结合生成器表达式更高效:
# 验证所有age都是数值类型 all_ages_valid = all(isinstance(item[0], (int, float)) for item in vals) # 验证所有income都是数值类型 all_incomes_valid = all(isinstance(item[1], (int, float)) for item in vals) print(f"所有age均为数值类型: {all_ages_valid}") print(f"所有income均为数值类型: {all_incomes_valid}")
补充说明
isinstance()比直接用type()更灵活,因为它能同时匹配int和float两种数值类型,避免你分别判断整数和浮点数的麻烦。
内容的提问来源于stack exchange,提问作者gallagouch
相关产品推荐
相关产品推荐

