【发布时间】:2012-10-11 14:10:06
【问题描述】:
问题:
给定一个数字列表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)
【问题讨论】:
-
这看起来像家庭作业,所以我问你是否已经涵盖了切片。这是使用列表切片的主要候选对象。
-
我想我们已经讨论过了,当您在列表中使用 : 时不是吗?
-
这是正确的,当您在索引列表时括号内有一个冒号时。
标签: python list python-3.x