我正在学习如何使用双端队列.这是我做的:
>>> d = deque([1,2,3,4,5,6], maxlen=3)
Run Code Online (Sandbox Code Playgroud)
我预计d会包含[1,2,3].但相反,我得到了:
>>> d
deque([4, 5, 6], maxlen=3)
Run Code Online (Sandbox Code Playgroud)
这不是违反直觉吗?
Ash*_*ary 10
来自docs:
一旦有界长度双端队列已满,当添加新项目时,从对方端丢弃相应数量的项目.有界长度deques提供类似于Unix中的尾部过滤器的功能.它们还可用于跟踪仅涉及最近活动的事务和其他数据池.
所以,你的代码相当于:
>>> from collections import deque
>>> d = deque(maxlen=3)
>>> for i in range(1, 7):
... d.append(i)
... print d
...
deque([1], maxlen=3)
deque([1, 2], maxlen=3)
deque([1, 2, 3], maxlen=3)
deque([2, 3, 4], maxlen=3)
deque([3, 4, 5], maxlen=3)
deque([4, 5, 6], maxlen=3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9444 次 |
| 最近记录: |