如何统计Python列表中非int类型值的数量?
统计Python列表中非int类型值的数量
要统计列表中非int类型的元素数量,核心是在遍历元素时加入类型判断条件,下面给你两种实用的实现方式:
方式一:修改你原有的循环逻辑
先修正一个小问题:不要用list作为变量名,这会覆盖Python内置的list类型,导致后续无法正常使用该类型。然后在循环里判断元素类型是否不是int,符合条件才计数:
my_list = [1, 2, "s1", 3, "s2", "s3"] def count_non_int_elements(input_list): count = 0 for element in input_list: # 严格判断元素类型是否为int(bool会被视为非int) if type(element) != int: count += 1 return count print("非int类型元素数量: ", count_non_int_elements(my_list))
方式二:用生成器表达式简化代码
Python里可以用sum()配合生成器表达式,一行代码完成统计,更简洁高效:
my_list = [1, 2, "s1", 3, "s2", "s3"] # 统计非int元素的数量 non_int_count = sum(1 for elem in my_list if type(elem) != int) print("非int类型元素数量: ", non_int_count)
关于判断条件的补充说明
如果你的列表里可能存在bool类型(比如True/False,它们是int的子类),可以根据需求选择判断逻辑:
type(element) != int:严格判断类型,bool会被当成非int统计not isinstance(element, int):会把bool也视为int类型(因为isinstance会识别子类),如果不需要统计bool,就用这个条件
内容的提问来源于stack exchange,提问作者slavabuu
相关产品推荐
相关产品推荐

