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

求助:Python列表元素平方代码异常,仅返回最后一个元素平方值

解决Python列表平方计算仅返回最后一个元素的问题

嘿,这个问题我之前也踩过坑!你遇到的情况大概率是因为代码里没有正确累积计算结果,反而每次循环都覆盖了结果列表,导致最后只剩下最后一个元素的平方值。

先猜猜你的错误代码样例

我估计你的代码大概是下面这种写法:

input_list = [2,3,4,5,6,7]
result = []
for num in input_list:
    result = [num ** 2]  # 这里每次都重新赋值成新的单元素列表,之前的结果全丢了!
print(result)

运行这段代码的话,确实只会输出[49]——因为每次循环都把result替换成只包含当前元素平方的新列表,最后一次处理7,自然就只剩它的平方了。

两种正确的写法,任选其一就行

方法1:用循环+append()累积结果

这是最直观的修正方式,把覆盖列表改成往列表里追加元素:

input_list = [2,3,4,5,6,7]
result = []
for num in input_list:
    result.append(num ** 2)  # 把每个平方值加到结果列表末尾
print(result)

方法2:用列表推导式(更简洁的Python风格写法)

如果想写得更优雅,直接用列表推导式一行搞定:

input_list = [2,3,4,5,6,7]
result = [num ** 2 for num in input_list]
print(result)

两种写法运行后都会输出你想要的结果:[4, 9, 16, 25, 36, 49]。

关键区别点

要搞清楚赋值和追加的差异:

  • result = [num ** 2]:每次创建新列表,完全替换掉之前的result,等于白算了前面的元素。
  • result.append(num ** 2):在已有列表的末尾添加新元素,保留所有之前的计算结果。

下次遇到类似的循环累积问题,先检查下对结果容器的操作是不是在“累积”而不是“替换”哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:54:21