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

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

    作者:勤奋的大熊猫

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python collections 模块中的 deque

    发表回复