遇0重置计数的列表遍历求和最后一段结果缺失问题求解
问题成因与修复方案
问题成因
代码仅在遍历到值为0的元素时,才会触发累计和的追加逻辑。示例输入中最后一段连续非0值的末尾没有0作为结束标记,遍历完整个列表后,最后一段的累计和没有执行append操作,因此丢失。
另外你提供的代码还存在语法问题:Python要求循环体内的代码需要缩进,你贴出的for循环下的if判断没有缩进,运行会直接报错。
修复方案
遍历完整个列表后,额外执行一次累计和的追加操作即可。如果需要兼容输入末尾为0的场景,可以在追加前判断累计值是否大于0,避免添加无意义的0值。
修复后的完整代码如下:
splitlist2 = [1, 2, 3, 0, 1, 1, 1, 0, 2, 2, 2] resultlist = [] count2 = 0 for i in splitlist2: if i == 0: resultlist.append(count2) count2 = 0 else: count2 += i # 追加最后一段的累计和,非0判断兼容末尾为0的场景 if count2 > 0: resultlist.append(count2)
运行后输出[6, 3, 6],符合预期效果。
内容的提问来源于stack exchange,提问作者DayLy
相关产品推荐
相关产品推荐

