【问题标题】:Sliding Window but changing where next window begins滑动窗口但改变下一个窗口开始的位置
【发布时间】: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


【解决方案1】:
A = list(range(1, 200))
for i in range(len(A)):
   if i == 0:
      print(A[i : i+10 ])    
   a = i + 4
   print(A[a : a+10 ])

【讨论】:

  • 你为什么不使用A = list(range(1, 200)),而不是for i in range(1,200)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多