26 python进阶collections标准库( 五 )

d.appendleft(d.pop()),向左循环一步就等价于 d.append(d.popleft())。maxlenDeque的最大尺寸,如果没有限定的话就是 Nonedeque 用法① linux下查看最新日志的命令是:tail -n 2 test.log,deque也可以实现同样的功能
def tail(filename, n=10):with open(filename) as f:return deque(f, n)② 维护一个近期添加元素的序列,通过从右边添加和从左边弹出
def moving_average(iterable, n=3):# moving_average([40, 30, 50, 46, 39, 44]) --> 40.0 42.0 45.0 43.0# http://en.wikipedia.org/wiki/Moving_averageit = iter(iterable)d = deque(itertools.islice(it, n-1))d.appendleft(0)s = sum(d)for elem in it:s += elem - d.popleft()d.append(elem)yield s / n【26 python进阶collections标准库】

经验总结扩展阅读