首页 > 解决方案 > 数组python中2个相邻元素的平均值

问题描述

我正在尝试编写一个程序来打印数组中的元素是否是其 2 个邻居的平均值。假设我有一个数组,其中包含[1,3,5,7,12,21]3 是 1+5 的平均值,5 是 3+7 的平均值。我在里面和里面for i in arr:使用。除了当我尝试运行它时,它说索引超出范围......我假设它是因为低于和高于但我想如果我放入条件它不会计算它们两个。否则我该如何处理这段代码?我的代码:if i>arr[0] and i<arr[-1]if i == (arr[i-1]+arr[i+1])/2:i-1arr[0]i+1arr[-1]if i>arr[0] and i<arr[-1]

arr = []
while True:
    x = input("Enter numbers, type ''STOP'' to stop.\n")
    if x.upper() == "STOP":
        break
    x=int(x)
    arr.append(x)
for i in range(len(arr)):
    if 0 < i < len(arr)-1:
        if arr[i] == (arr[i-1]+arr[i+1])//2:
            print(arr[i], "is the average of its neighbours")

标签: pythonarrays

解决方案


在条件if i == (arr[i-1]+arr[i+1])/2:i 是数组项的值而不是索引。因此,当我变为 12 或 21 时,它会超出 arr 的索引范围。相反,您可以使用它for i in range(len(arr)):来获取索引。


推荐阅读