如何创建一个滑动窗口生成器python 3.3

时间:2013-02-19 00:42:43

标签: python python-3.x

[0, 1, 1, 1, -1, -1, -1, -1, 1]

如何使用5的滑动窗口生成器添加此项? 所以它将是0 + 1 + 1 + 1 + -1然后是1 + 1 + 1 + -1 + -1等。 我正在尝试计算它们,但我无法计算每次计算到5时如何移动我的范围。

    for num in range(len(value)+1):
        print(sum(map(int, value[num-n_day:num])))

其中value是列表,n_day是5

对不起我的意思是我想做的事:     0

0+1 = +1
0+1+1 = +2
0+1+1+1 = +3
0+1+1+1-1 = +2
1+1+1-1-1 = +1
1+1-1-1-1 = -1
1-1-1-1-1 = -3
-1-1-1-1+1 = -3

1 个答案:

答案 0 :(得分:1)

我只想用切片和列表理解来做到这一点:

>>> value = [0, 1, 1, 1, -1, -1, -1, -1, 1]
>>> n_day = 5
>>> [sum(value[i:max(i-n_day, 0):-1]) for i in range(len(value))]
[0, 1, 2, 3, 2, 1, -1, -3, -3]