[入门]——数据结构——双向队列

双向队列 collections.deque

通过列表实现队列时, 在删除头部元素pop(0)很耗时, 这牵扯了元素的移动(即以为删除法)。

collections.deque类(双向队列)是一个线程安全, 可以快速从连段删除添加元素的数据类型。

collections.deque([*iterable*[, *maxlen*]])

如果 maxlen 没有指定或者是 None ,deques 可以增长到任意长度。否则,deque就限定到指定最大长度。一旦限定长度的deque满了,当新项加入时,同样数量的项就从另一端弹出。

方法 作用 会不会引发异常
append(x) 添加 x 到右端。
appendleft(x) 添加 x 到左端
pop() 不加参数删除最右端 没有会引发异常
popleft() 不加参数删除最多断。 没有会引发异常
rotate(n=1) 向右循环移动 n 步。 如果 n 是负数,就向左循环。
extend(iterable) 从右侧扩展扩展,通过添加iterable参数中的元素
extendleft(iterable) 从左侧扩展扩展,通过添加iterable参数中的元素
clear() 清空队列
count(x) 计算 deque 中元素等于 x 的个数。

代码示例
[入门]——数据结构——双向队列