You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的代码无法分别计算列表奇偶和并返回预期新列表?

问题分析与修复方案

原代码的核心问题

  • return语句位置错误:return sum_num写在for循环内部,导致循环刚执行第一次就直接返回结果,所以输出只有[1]。
  • 累加逻辑错误:代码里even +=1和odd +=1是在统计奇偶数字的个数,而不是计算它们的数值和,应该改成累加元素本身的值。
  • 结果列表构建错误:每次循环都往sum_num里添加计数,而非最后将计算好的奇偶和汇总成目标列表。

修正后的代码

class Solution(object):
    def calculate_odd_even(self, li):
        even_sum = 0
        odd_sum = 0
        for num in li:
            if num % 2 == 0:
                even_sum += num
            else:
                odd_sum += num
        # 最后返回[奇数和, 偶数和]
        return [odd_sum, even_sum]

if __name__ == "__main__":
    p = Solution()
    lit = [1, 2, 4, 5]
    print(p.calculate_odd_even(lit))  # 输出: [6, 6]

修正说明

  1. 把return语句移到for循环外部,确保遍历完所有元素后再返回结果。
  2. 将even +=1改为even_sum += num,odd +=1改为odd_sum += num,实现数值求和而非计数。
  3. 遍历完成后,将奇数和、偶数和组成列表返回,符合需求格式。

内容的提问来源于stack exchange,提问作者user20502753

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:15:31