Python统计列表中1的个数时返回None,求错误排查与解决
代码错误排查与修正
原代码的核心错误
enumerate使用错误:enumerate(x)返回的是(索引, 元素)的元组,比如遍历[1,4,5,1,3]时,第一个i是(0,1),永远不可能等于1,导致判断条件if i==1永远不成立。- 语法错误:
append.result(i)是错误的调用方式,正确的列表追加元素应该是result.append(元素)。 - 逻辑错误:
sum(i)毫无意义,既没有赋值给变量,也和统计1的个数无关;而且return result放在循环内部,第一次循环就会直接返回,根本无法遍历整个列表。 - 无有效返回值:因为所有判断条件都不触发,函数没有执行到
return语句,Python默认会返回None,这就是你看到输出NONE的原因。
修正后的代码
如果只是统计列表中1的个数,不需要用列表存储,用计数器更高效:
def count_ones(lst): count = 0 for num in lst: if num == 1: count += 1 return count c = count_ones([1, 4, 5, 1, 3]) print(c) # 输出:2
或者用更简洁的Python内置方法:
c = [1, 4, 5, 1, 3].count(1) print(c) # 输出:2
内容的提问来源于stack exchange,提问作者noswagfam
相关产品推荐
相关产品推荐

