我想在python中创建一个高效的循环缓冲区(目标是取缓冲区中整数值的平均值)。
这是使用列表收集值的有效方法吗?
def add_to_buffer( self, num ): self.mylist.pop( 0 ) self.mylist.append( num )
什么会更有效(为什么)?
我会用collections.deque一个maxlenarg
collections.deque
maxlen
>>> 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语言实现的,这是由一个熟练掌握了一流代码的技术人员组成的。
deque