本文将介绍 Python collection 模块中的 deque 模块。
from collections import deque
from collections import deque
d = deque()
print(d) # deque([])
将 Python 内置的 list 对象通过 deque() 函数转换为 deque 对象。
from collections import deque
d = deque([1, 2, 3])
print(d) # deque([1, 2, 3])
与传统的 list 对象一样,通过 append() 方法可以在 deque 队列右侧添加元素。
from collections import deque
d = deque()
d.append(4)
print(d) # deque([4])
deque 又叫双边队列,它也可以通过 appendleft() 方法实现左侧添加元素。
from collections import deque
d = deque()
d.append(4)
d.appendleft(0)
print(d) # deque([0, 4])
from collections import deque
d = deque([0, 4])
value = d.popleft()
print(d) # deque([0])
print(value) # 4
from collections import deque
d = deque([0, 4])
value = d.popleft()
print(d) # deque([4])
print(value) # 0
from collections import deque
d = deque([0, 4])
d.extend([1, 2])
print(d) # deque([0, 4, 1, 2])
from collections import deque
d = deque([0, 4])
d.extendleft([1, 2])
print(d) # deque([2, 1, 0, 4])
输入参数是正数时可以实现元素循环右移
from collections import deque
d = deque([0, 1, 2, 3, 4])
d.rotate(3)
print(d) # deque([2, 3, 4, 0, 1])
输入参数是负数时可以实现元素循环左移
from collections import deque
d = deque([0, 1, 2, 3, 4])
d.rotate(-3)
print(d) # deque([3, 4, 0, 1, 2])
from collections import deque
d = deque([0, 1, 2, 3, 4])
d.clear()
print(d) # deque([])
可以指定队列的最大长度,当元素超出时,会自动从队列另一端丢弃多余的元素。
from collections import deque
d = deque([0, 1, 2], maxlen=3)
d.append(3)
print(d) # deque([1, 2, 3], maxlen=3)
d = deque([0, 0, 1, 2])
num = d.count(0)
print(num) # 2
from collections import deque
d = deque([0, 0, 1, 2])
num = d.index(0)
print(num) # 0
和 list 对象一样,也是从左向右获取第一个等于给定值的元素对应的索引值。
from collections import deque
d = deque([0, 0, 1, 2])
d.insert(3, 0) # 将元素插入到位置 3 处
print(d) # deque([0, 0, 1, 0, 2])
from collections import deque
d = deque([0, 0, 1, 2])
d.remove(0)
print(d) # deque([0, 1, 2])
from collections import deque
d = deque([0, 0, 1, 2])
d.reverse()
print(d) # deque([2, 1, 0, 0])
总的来说,deque 队列相当于 list 的扩展,加入了一些可以从左侧对元素进行操作的方法,方便我们实现更复杂的功能。
如果大家觉得有用,就点个赞让更多的人看到吧~