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