1. ホーム
  2. python

[解決済み] 効率的な循環型バッファ?

2022-06-22 03:01:54

質問

効率的な 循環バッファ を作りたいのです(バッファ内の整数値の平均を取るのが目的です)。

これは、値を収集するためにリストを使用する効率的な方法ですか?

def add_to_buffer( self, num ):
    self.mylist.pop( 0 )
    self.mylist.append( num )

何がより効率的か(とその理由)?

どのように解決するのですか?

私なら collections.deque maxlen arg

>>> import collections
>>> d = collections.deque(maxlen=10)
>>> d
deque([], maxlen=10)
>>> for i in xrange(20):
...     d.append(i)
... 
>>> d
deque([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], maxlen=10)

には レシピ のためのドキュメントで deque のドキュメントにあるレシピは、あなたが望むものに似ています。これが最も効率的であるという私の主張は、一流のコードを書き出す習慣のある非常に熟練したスタッフによって C 言語で実装されているという事実に完全に依存しています。