列表除了可以当做堆栈来使用之外,也可以把列表当做队列用,只是在队列里第一加入的元素,第一个取出来;但是拿列表用作这样的目的效率不高。在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。
- #collections是Python一个内建集合模块,现在导入其中一个名为双向列表的模块deque,实现快速插入删除。
常用的方法有:
- d=deque([]) #创建一个空的双队列
- d.append(item) #在d的右边(末尾)添加项目item
- d.appendleft(item) #从d的左边(开始)添加项目item
- d.clear() #清空队列,也就是删除d中的所有项目
- d.extend(iterable) #在d的右边(末尾)添加iterable中的所有项目
- d.extendleft(item) #在d的左边(开始)添加item中的所有项目
- d.pop() #删除并返回d中的最后一个(最右边的)项目。如果d为空,则引发IndexError
- d.popleft() #删除并返回d中的第一个(最左边的)项目。如果d为空,则引发IndexError
- d.rotate(n=1) #将d向右旋转n步(如果n<0,则向左旋转)
- d.count(n) #在队列中统计元素的个数,n表示统计的元素
- d.remove(n) #从队列中删除指定的值
- d.reverse() #翻转队列