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

Python计算Total Sum of Squares(TSS)结果异常排查求助

代码问题排查

错误原因

原代码存在两个核心逻辑错误:

  • 没有初始化专门的累加变量存储平方和结果,循环内的i是遍历列表的临时变量,每次迭代都会被覆盖为列表的下一个元素,累加操作完全无效
  • 循环结束后返回的是最后一次迭代的i值:最后一个元素是13,均值为4,13 + (13-4)**2 = 13 +81 =94,就是你得到的错误结果

修复后的代码

from statistics import mean

x = [3,1,3,1,3,13]

def tss(a):
    m = mean(a)
    total = 0
    for i in a:
        total += (i - m)**2
    return total

print(tss(x))

运行后输出结果为102,和预期一致。

更简洁的实现方式

也可以用生成器表达式简化代码,逻辑完全等价:

from statistics import mean

def tss(a):
    m = mean(a)
    return sum((i - m)**2 for i in a)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:45:02