版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/102856073
Python内置的list可以直接用来堆栈操作,即先进后出,就通过append()和pop()实现即可。
如果是队列操作,即先进先出,则通过append()和pop(0)也能实现,不过这个效率要慢很多。因为移除第一个后则后面的需要一个个往前移动。
deque这个双队列操作,是优化之后的选择,用这个会提高运行效率。
#导入相应的模块
from collections import deque
查看deque和list的函数情况比对:
由此可看出,主要是增加了append、extend、pop这三个操作的左端操作方法。
其中popleft()等同于pop(0),但性能上前者优于后者。appendleft()则是在左侧添加元素。这里需要注意的是extendleft()操作。
由此可得,extend的操作类似于一个循环操作,即用于并入a的b队列,其前面的元素先进入,末位元素则后进入。即:a.extend(b)是把b追加到a后,b的末位元素成为a的末位元素。a.extendleft(b)则是把b逐个追加到a,此时b的末位元素成为a的首位元素。这两种的共性是:b的末位元素始终在a的两端,如果是left模式则是首位,否则就是末位。
遗憾的是:deque的pop操作,是无参数的,即只能去掉两端的,不能指定去掉某个位置的元素,而list的pop可以。
独孤尚良dugushangliang——著