collection.deque : deque (maxlen=N)创建了一个固定长度的队列,当有新的队列已满时会自动移除最老的那条记录。例如:
>>q=deque(maxlen=3)
>>q.append(1)
>>q.append(2)
>>q.append(3)
>>q.append(4)
>>q
deque([1,2,3],maxlen=3)
当需要一个简单的队列结构时,deque可以祝你一臂之力。如果不指定队列的大小,也就得到了一个无界限的队列,可以在两端执行添加和弹出操作。例如:
>>q.append(1)
>>q.append(2)
>>q.append(3)
>>q
deque([1,2,3])
>>q.appendleft(4)
>>q
deque([4,1,2,3])
>>q.pop()
3
>>q
deque[4,1,2]
>>q.ppopleft()
4
从队列两端添加或弹出元素复杂度都是O(1)。折和列表不同,当从列表的头部插入或移除元素是,列表的复杂度为O(N)。