Python collections 模块中的 deque

Python collection 模块中的 deque

  • 引言
  • 正文
    • 导入模块
    • 创建 deque
      • 创建空的 deque 对象(队列)
      • 创建非空 deque 对象
    • 右侧添加元素------append()
    • 左侧添加元素------appendleft()
    • 从右侧删除元素并返回------pop()
    • 从左侧删除元素并返回------popleft()
    • 向右侧批量添加元素------extend()
    • 向左侧批量添加元素------extendleft()
    • 元素循环移动------rotate()
      • 循环右移
      • 循环左移
    • 清空 deque------clear()
    • 指定队列最大长度------maxlen
    • 统计队列中某一个元素出现的次数------count()
    • 获取队列中某一元素对应的索引值------index()
    • 将元素插入到位置 i 处------insert()
    • 删除队列中第一个出现的元素------remove()
    • 反转队列中的元素------reverse()

引言

本文将介绍 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 的扩展,加入了一些可以从左侧对元素进行操作的方法,方便我们实现更复杂的功能。

如果大家觉得有用,就点个赞让更多的人看到吧~

你可能感兴趣的:(Python,基础,python,deque,双边队列)