在本节里提供了一些关于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 深圳