2016-05-19 6 views
0

振動するオブジェクトの位相時間を検出しようとしていますが、以前の3つのデータポイントを常に保存しておく方法を見つけられないようです。Python 2.7でデータをサイクリング

prev2 == prev 
prev == current 
current == int(data) 

私はデータ収集ループを通過するたびに、私はデータのためのいくつかの値を取得し、私はこのループを3回行けば、私は私の変数として格納されたデータのための私の以前の三つの値を持つ必要があります期待して、何らかの理由でcurrent、prev、およびprev2はすべて0にとどまっています。私にはそれほど意味がありません。つまり、print(int(data))の直下に置くと、現在の番号に戻ります。どのように私がこれを修正することができるか知っている人なら、私はそれを高く評価します。

+2

"=="は、代入演算子ではなく、等価性の評価です。 – BHawk

答えて

0

dequeを紹介する素晴らしい機会です。

>>> from collections import deque 
>>> 
>>> rolling = deque([5,6,7], maxlen=3) 
>>> rolling 
deque([5, 6, 7], maxlen=3) 
>>> rolling.append(8) 
>>> rolling 
deque([6, 7, 8], maxlen=3) 
5

==の代わりに=を使用します。 ==は同等性をチェックし、=は代入文です。あなたのコードは:

prev2 = prev 
prev = current 
current = int(data)