zoukankan      html  css  js  c++  java
  • 理解python的queue&deque

    python3 deque(双向队列)

    创建双向队列

    import collections
    d = collections.deque()

    基本用法:

    import collections
    d = collections.deque()
    
    d.append(1)
    d.appendleft(2)
    d.extend([3,4,5])
    d.extendleft([3,4,5])
    new_d = d.copy()
    d.extend(['a','b','c','d','e'])
    d.rotate(2)   #指定次数,默认1次
    d.clear()
    #清空所有

    python的queue的实现三种类型的队列。

    FIFO先进先出,同数据结构的队列

    import queue
    import time
    q = queue.Queue()
    q.put(2)
    q.put(1)
    q.put(3)
    while not q.empty():
        next_item = q.get()
        print(next_item)
    

    LIFO,后进先出。同数据结构的栈

    import queue
    q = queue.LifoQueue()
    q.put(2)
    q.put(1)
    q.put(3)
    while not q.empty():
        next_item = q.get()
        print(next_item)

    PQ优先队列

    它一般通过堆这一数据结构,而堆其实是一种完全二叉树,它会对进入容器的元素进行排序(根据事先指定的规则),出队的顺序则会是二叉树的根结点代表的元素。

    from queue import PriorityQueue
    q = PriorityQueue()
    q.put((2, 'code'))
    q.put((1, 'eat'))
    q.put((3, 'sleep'))
    while not q.empty():
        next_item = q.get()
        print(next_item)

    参考链接:https://www.cnblogs.com/MY0213/p/8997461.html

  • 相关阅读:
    初步使用redis
    redis配置文件介绍
    windows64位 redis安装 步骤
    敏感词过滤算法
    SpringBoot使用拦截器无效
    linux常用命令
    automation(一)
    JAVA的接口多态
    JAVA的多态(强制转换)
    JAVA的多态
  • 原文地址:https://www.cnblogs.com/topass123/p/13157003.html
Copyright © 2011-2022 走看看