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

有序整数列表平方排序的Python代码错误排查

问题描述

现有算法需求:给定一个已排序的整数列表,对列表内所有元素求平方后,输出排序后的结果。
运行如下Python代码时出现异常,需要定位错误:

list = [-9, -2, 0, 2, 3]
squared_list=[]


for element in list:
    squaring = list[element] * list[element]
    squared_list.append(squaring)

squared_list.sort()
print(squared_list)
错误分析

代码的核心逻辑错误出在循环遍历部分:

  • 用for element in list语法遍历列表时,element存储的是列表里的实际元素值,不是元素的位置索引。
  • 原代码写的list[element]是把元素值当成索引去取列表内容,第一次循环拿到的元素是-9,执行list[-9]会直接触发索引越界报错:当前列表长度只有5,合法的负索引最小为-5,不存在-9这个位置。
  • 额外注意:不要用list作为自定义变量名,list是Python内置的列表类型,用它做变量名会覆盖内置的列表方法,容易引发其他难以排查的问题。
修正后代码
nums = [-9, -2, 0, 2, 3]
squared_list = []

for element in nums:
    # 直接对遍历拿到的元素值做平方计算即可,不需要再通过索引取值
    squaring = element * element
    squared_list.append(squaring)

squared_list.sort()
print(squared_list)

运行上述代码会输出正确结果[0, 4, 4, 9, 81]。

内容的提问来源于stack exchange,提问作者39 Saurav Choudhary

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 20:03:39