如何在Python中实现列表相邻元素平均值的计算循环?
实现你需要的Python列表平均计算逻辑
Hey,我看了你的需求,这里有个小细节得先澄清下:你伪代码里写的「循环i从1到2」会导致索引越界问题(因为listOfNumbers只有3个元素,索引最大是2,i=2时listOfNumbers[i+1]就超出范围了),而且这样也得不到你想要的[1.5, 2.5, 0]结果。不过没关系,我给你整理了最合理的实现方案:
匹配目标结果的正确代码
这是能直接得到你想要结果的实现:
# 初始化指定的两个列表 listOfNumbers = [1, 2, 3] averagesOfNumbers = [0, 0, 0] # 循环i取0和1,对应计算前两个位置的平均值 for i in range(2): averagesOfNumbers[i] = (listOfNumbers[i] + listOfNumbers[i + 1]) / 2 # 验证输出结果 print(averagesOfNumbers) # 输出:[1.5, 2.5, 0]
代码细节拆解
- 先按要求初始化两个列表,
averagesOfNumbers初始值全设为0; range(2)会生成0和1两个循环变量,正好对应我们需要赋值的前两个位置:- 当
i=0时,计算(1+2)/2=1.5,赋值给averagesOfNumbers[0]; - 当
i=1时,计算(2+3)/2=2.5,赋值给averagesOfNumbers[1];
- 当
- 第三个位置
averagesOfNumbers[2]保持初始的0,完美匹配你要的最终结果。
关于伪代码循环范围的说明
如果严格按你写的「循环i从1到2」执行,会触发IndexError(因为listOfNumbers没有索引3的元素),而且得到的结果也和预期不符,所以不推荐这种写法。
内容的提问来源于stack exchange,提问作者DenverDataThug
相关产品推荐
相关产品推荐

