模块_collections包_deque

双端队列 deque  与  队列queue

双端队列-高效实现插入删除操作的双向列表(list列表的插入、删除效率较低)

import queue

q = queue.Queue()  # 创建一个队列 (一端放,另一端取) FIFO (First In First Out) 先进先出   不能插队哦 没有insert()方法
q.put(10)
q.put(8)
q.put(6)
q.put(4)
q.put(2)

print(q.get())
print(q.get())
print(q.get())

while q.qsize():  # 判断队列大小(队列中还有多少没被取出)
    print("循环取出剩余未被取出的", q.get())

 

from collections import deque

dq = deque(['a', 'b', 'c'])  # 创建一个双端队列 "双端"-可以被从两端 增\删  可以被"插队"  它有insert()方法
dq.append('x')  # 尾端新增
dq.append('y')  # 尾端新增
dq.append('z')  # 尾端新增
dq.appendleft('3')  # 首端新增
dq.appendleft('2')  # 首端新增
dq.appendleft('1')  # 首端新增

print(dq)  # deque(['1', '2', '3', 'a', 'b', 'c', 'x', 'y', 'z'])
dq.pop()  # 尾端删除一个
dq.popleft()  # 首端删除一个
print(dq)  # deque(['2', '3', 'a', 'b', 'c', 'x', 'y'])
print(dq.pop())  # 尾端删除一个 打印出被删除的元素
dq.insert(2, 'A')  # 可以按索引下标插入
print(dq)  # deque(['2', '3', 'A', 'a', 'b', 'c', 'x'])

 

posted @ 2020-05-07 18:48  CherryYang  阅读(171)  评论(0)    收藏  举报