Python的collections模块是容器数据类型,其中的deque对象是队列容器。返回双向队列对象,类似列表。
from collections import deque
[x for x in dir(deque) if not x.startswith('_')]
# 结果:
['append', 'appendleft', 'clear', 'copy', 'count', 'extend', 'extendleft',
'index', 'insert', 'maxlen', 'pop', 'popleft', 'remove', 'reverse', 'rotate']
往队列添加元素:
colleceionts.deque().append(...):往队列右端(队尾)添加一个元素。
colleceionts.deque().appendleft(...):往队列左端(队头)添加一个元素。
colleceionts.deque().extend(...):往队列右端(队尾)添加多个元素,参数是可迭代对象(如:列表)。
colleceionts.deque().extendleft(...):往队列左端(队头)添加多个元素,看似可迭代参数中元素是倒着(从尾到头)添加。
colleceionts.deque().insert(i,x):往队列指定位置(即下标/索引)添加一个元素,下标号从0开始。
从队列移除元素:
colleceionts.deque().pop():从队列右端(队尾)移除一个元素,并返回该元素。
colleceionts.deque().popleft():从队列左端(队头)移除一个元素,并返回该元素。
colleceionts.deque().remove(...):移除找到的第一个指定元素。
colleceionts.deque().clear():清除所有元素,队列长度为0。
队列逆序排列、向右循环移动:
colleceionts.deque().reverse():将队列倒过来排列。
colleceionts.deque().rotate(n=1):将队列向右循环移动n步,不提供参数默认移动1步。
获取指定元素个数和位置:
colleceionts.deque().count(...):找到指定元素,统计共有多少个。
colleceionts.deque().index(...):找到指定元素,返回在队列中的位置。
队列拷贝、获取队列最大尺寸:
colleceionts.deque().copy():将队列浅拷贝。
colleceionts.deque().maxlen:获取队列最大尺寸,返回None则表示没有限定。
补充:
collections --- 容器数据类型 — Python 3.12.0 文档