循环遍历数组大小为10的列表 若当前值为0 遍历获取距离当前下标最近的三个不为0的数值求平均值赋给当前值
# 数值计算
def number_calculation(my_list):
# 遍历列表
for i in range(len(my_list)):
if my_list[i] == 0: # 当前值为0
# 找到最近的三个非零数值
nearest_values = []
j = 1
# 向前查找非零数值
while len(nearest_values) < 3 and (i - j) >= 0:
if my_list[i - j] != 0:
nearest_values.append(my_list[i - j])
j += 1
j = 1
# 向后查找非零数值
while len(nearest_values) < 3 and (i + j) < len(my_list):
if my_list[i + j] != 0:
nearest_values.append(my_list[i + j])
j += 1
# 计算平均值并赋给当前值
if len(nearest_values) > 0:
average = sum(nearest_values) / len(nearest_values)
# 保留5位小数 组后一位四舍五入
my_list[i] = round(average, 5)
return my_list