1
[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
4

1 に答える 1

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]
于 2013-02-19T00:56:17.623 に答える