28-4 collection模块

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|指向下一个值的地址 】

原文地址:https://www.cnblogs.com/zhuangdd/p/12669978.html