【发布时间】:2021-09-26 09:09:16
【问题描述】:
我有以下代码:
A = list(range(1, 200))
for i in range(len(A)):
print(A[i : i+5 ])
产生输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
...
对于上面的代码,我将如何更改它以将每个下一个数组开始另外 3 个位置?例如,输出如下所示:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
...
【问题讨论】:
-
将开始、结束和步长传递到范围:
for i in range(0, len(A), 3): -
for i in [0,4,5,6,...]:- 如果您想要任意步进,您必须自己描述/生成它。 -
你确定你的输出是正确的吗?第一个中的
A[i : i+5 ]不应生成每个具有 10 个元素的切片,而在第二种情况下,看起来只有第二次迭代偏移了 3,然后又偏移了 1。这是故意的吗?
标签: python arrays loops sliding-window