Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在数据点相互依赖的列表中循环?_Python_Loops - Fatal编程技术网

Python 如何在数据点相互依赖的列表中循环?

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=[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 = [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风格的答案,也可能是最容易理解的答案,无需深思熟虑。