Python 如何在数据点相互依赖的列表中循环?
我有一个列表,a=[5,4,9,3,6,6,8,2],我基本上想对前三个数字求和,这个和将是新列表中的第一个值。新列表中的下一个值将是4、9和3的总和…等等。等等。如何在Python中循环此操作?列表切片是一种很好的方法 你所需要做的就是从开始索引到结束索引-2(可以求最后3个元素的和,当你到达倒数第二个或最后一个元素时,你将无法获取3个元素) 在这里,您可以获取3个元素,并使用列表切片,从 当前索引到下一个3索引,即Python 如何在数据点相互依赖的列表中循环?,python,loops,Python,Loops,我有一个列表,a=[5,4,9,3,6,6,8,2],我基本上想对前三个数字求和,这个和将是新列表中的第一个值。新列表中的下一个值将是4、9和3的总和…等等。等等。如何在Python中循环此操作?列表切片是一种很好的方法 你所需要做的就是从开始索引到结束索引-2(可以求最后3个元素的和,当你到达倒数第二个或最后一个元素时,你将无法获取3个元素) 在这里,您可以获取3个元素,并使用列表切片,从 当前索引到下一个3索引,即a[i:i+3]其中[i,i+3)是范围。然后在该新列表上执行求和操作,并将重
a[i:i+3]
其中[i,i+3)
是范围。然后在该新列表上执行求和
操作,并将重用添加到最终列表中
a = [5, 4, 9, 3, 6, 6, 8, 2]
res=[]
for i in range(len(a)-2):
res.append(sum(a[i:i+3]))
print(res)
输出
[18, 16, 18, 15, 20, 16]
列表切片是一种很好的方法
你所需要做的就是从开始索引到结束索引-2(可以求最后3个元素的和,当你到达倒数第二个或最后一个元素时,你将无法获取3个元素)
在这里,您可以获取3个元素,并使用列表切片,从
当前索引到下一个3索引,即a[i:i+3]
其中[i,i+3)
是范围。然后在该新列表上执行求和
操作,并将重用添加到最终列表中
a = [5, 4, 9, 3, 6, 6, 8, 2]
res=[]
for i in range(len(a)-2):
res.append(sum(a[i:i+3]))
print(res)
输出
[18, 16, 18, 15, 20, 16]
一艘班轮:
list(map(sum, zip(a, a[1:], a[2:])))
输出:
[18, 16, 18, 15, 20, 16]
因此,您正在创建所需的子列表,其中包含要相加的数字,然后使用高阶函数map
一行代码对每个子列表求和:
list(map(sum, zip(a, a[1:], a[2:])))
输出:
[18, 16, 18, 15, 20, 16]
因此,您正在创建所需的要相加的数字子列表,然后使用高阶函数map
对每个子列表求和,如果我了解您想要什么:
b = [sum(a[i : i+3]) for i in range(0, len(a)-2)]
如果我明白你想要什么:
b = [sum(a[i : i+3]) for i in range(0, len(a)-2)]
你可能想使用for loop你也可以使用步长为3的索引/计数器进行循环,然后使用列表切片进行求和。[sum(x)for x in zip(a,a[1:],a[2:])]
你可能想使用for loop你也可以使用步长为3的索引/计数器进行循环,然后使用列表切片进行求和。[sum(x)对于zip中的x(a,a[1:],a[2:])]
这是迄今为止发布的最具python风格的答案,可能是最容易理解的答案,无需深思熟虑。这是迄今发布的最具python风格的答案,也可能是最容易理解的答案,无需深思熟虑。