collection模块
是一个数据类型的扩展模板
什么是队列?
1、单端的:先进先出(排队)
import queue q=queue.Queue() q.put(1) q.put(2) q.put(3) q.put(4) print(q) # 是一个对象,看不见值 print(q.get()) # 先进先出,拿出来1了
print(q.qsize()) # 3 上面拿出来一个后就只剩三个了
2、双端的:
deque 双端队列
from collections import deque dq =deque() dq.append(1) dq.append(2) dq.appendleft('a') dq.appendleft('b') print(dq) # 可以看到值 deque(['b', 'a', 1, 2]) print(dq.pop()) # 2 print(dq) # deque(['b', 'a', 1]) print(dq.popleft()) # b print(dq) # deque(['a', 1]) print(dq.remove('a')) print(dq) # deque([1]) print(dq.insert(1,'a')) print(dq) #deque([1, 'a'])
好像和列表差不多嘛?
其实效率会更快!
因为双端队列用的链表
【 1|指向下一个值的地址 】-》【 a|指向下一个值的地址 】-》.... 【 xx|指向下一个值的地址 】