Python中如何对两个数组应用依赖相邻元素的方程?
问题解决:数组相邻元素计算与结果存储
核心问题分析
- 循环范围错误:你原本使用
range(len(b)),会导致最后一次循环时i+1超出数组索引(数组长度为11,索引最大为10,i=10时i+1=11会触发索引错误)。同时你需要生成9个结果,因此循环次数应为9次。 - 未保留计算结果:每次循环仅给变量
x赋值,没有将结果追加到列表中,最终x只会保留最后一次计算值。 - 计算式错误:你写的计算式
b[i]+ b[i+1] - a[i] + a[i+1]不符合预期结果,正确式子应为b[i] + b[i+1] - a[i] - a[i+1]。
修正代码
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] # 初始化空列表存储结果 result = [] # 循环9次,遍历前9组相邻元素 for i in range(9): # 正确计算式,匹配预期结果 calc_value = b[i] + b[i+1] - a[i] - a[i+1] result.append(calc_value) # 输出预期数组 print(result) # 计算并输出总和 total_sum = sum(result) print("结果总和:", total_sum)
运行结果
输出的结果数组为:
[9, 27, 45, 63, 81, 99, 117, 135, 153]
总和为:729
简化写法(可选)
用列表推导式简化代码,更简洁:
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] result = [b[i] + b[i+1] - a[i] - a[i+1] for i in range(9)] total_sum = sum(result) print(result) print("结果总和:", total_sum)
内容的提问来源于stack exchange,提问作者jimmyjones
相关产品推荐
相关产品推荐

