У меня есть такой список,
l=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
Теперь я хочу применить скользящее окно размера пять (n1), но оно будет двигаться вперед на три шага (n2).
Нужный вывод, который я ищу, если n1 = 5 и n2 = 3,
[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11],[10,11,12,13,14],[13,14,15,16,17],[16,17,18,19,20]
Я мог бы использовать следующий код,
[ thelist[x:x+size] for x in range( len(thelist) - size + 1 ) ] # but this returns only one
forward move.
Как переместить его более чем на 1?
Я могу использовать цикл for, но время выполнения будет огромным.
Как реализовать это с меньшим временем выполнения?