问题:
给定一个listA
数字列表,编写一个程序,生成一个listB
具有与 相同数量的元素listA
的新列表,使得新列表中的每个元素都是原始列表中其邻居和自身的平均值。
例如,如果listA = [5, 1, 3, 8, 4]
, listB = [3.0, 3.0, 4.0, 5.0, 6.0]
, 其中:
(5 + 1)/2 = 3.0
(5 + 1 + 3)/3 = 3.0
(1 + 3 + 8)/3 = 4.0
(3 + 8 + 4)/3 = 5.0
(8 + 4)/2 = 6.0
所以我可以得到第一部分和最后一部分,因为它们只处理 2 个数字,但对于中间部分,我无法得到它。我的循环是错误的,但我不知道。这就是我到目前为止所拥有的。
listA= [5,1,3,8,4]
N=len(listA)
print(listA)
listB=[]
listB.append((listA[0]+listA[1])/2)
y=0
x=1
while x in listA:
y=((listA[x-1] + list[x] + list[x+1])/3)
listB.append(y)
y=y+1
listB.append((listA[-1]+listA[-2])/2)
print(listB)