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

如何修改已处理数组?遇IndexError索引越界问题求助

错误排查与修正

核心错误点

  • 数组初始化错误:array2 = [arrayEndValue] 仅将上一个循环的最后一个元素存入array2,而非完整的乘5后数组。
  • 索引误用:for modiedArray in array2 遍历的是数组元素的值,而非索引。用元素值作为索引访问数组(array2[modiedArray])必然触发IndexError——比如元素值为20,但array2长度仅为1,合法索引只有0,超出范围。
  • 逻辑偏差:代码完全未实现“所有乘5后的元素加10”的需求,仅尝试处理单个元素且方式错误。

修正后的代码

array = []
inputTotal = int(input("Number of items for the array (must be at least 5): "))
if inputTotal >= 5:
    for arrayItem in range(inputTotal):
        arrayInputs = int(input(f"Input  {arrayItem + 1}: "))
        array.append(arrayInputs)

    # 第一步:所有元素乘5
    for arrayItem in range(len(array)):
        array[arrayItem] = array[arrayItem] * 5
    print("\nModified array items (×5): ", end="")
    for num in array:
        print(num, end=' ')

    # 第二步:所有乘5后的元素加10
    # 方式1:直接修改原数组
    for i in range(len(array)):
        array[i] += 10
    # 方式2:创建新数组(保留原乘5数组)
    # array2 = [num + 10 for num in array]

    print("\nFinal array (×5 +10): ", end="")
    for num in array:
        print(num, end=' ')

else:
    print("Number must be at least 5")

关键说明

  • 若需保留原乘5后的数组,使用列表推导式array2 = [num +10 for num in array]更简洁高效。
  • 遍历数组时,若要修改元素,用索引遍历(range(len(array)))更直接;若仅读取元素,直接遍历元素即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:10:26