IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]5.3.3.1 deque其它使用方式

    caimouse发表于 2016-01-09 09:51:25
    love 0

    在本节里提供了一些关于deque其它使用方式。

    提供类似UNIX中的命令tail的功能,显示一个文件最后面一段文本:

    def tail(filename, n=10):

        '返回文件最后的n行文本'

        with open(filename) as f:

            return deque(f, n)

     

    比如使用deque来计算一个移动平均数:

    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_average

        it = 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

    移动平均线( Moving Average -MA) 也叫移动平均价, 是利用统计学上移动平均数的原理,将过去一定天数的证券,期货成交价格加以(加权)平均,连贯所得出的价位线。并根据其排列顺序、乘离、穿越、跌破等现象,来研究判进出场的时点。

     

    使用rotate()来实现删除指定位置的元素:

    def delete_nth(d, n):

        d.rotate(-n)

        d.popleft()

        d.rotate(n)

     


    蔡军生  QQ:9073204  深圳



沪ICP备19023445号-2号
友情链接