zoukankan      html  css  js  c++  java
  • python(3)-队列

    队列分为双向队列和单向队列:

    对于双向队列,同样需要先import collections

    创建队列

    >>> import collections
    >>> d = collections.deque()
    >>> type(d)
    <class 'collections.deque'>

    向队列中添加元素

    >>> d.appendleft("1")      #从左边添加
    >>> print(d)
    deque(['1'])
    >>> d.append('2')          #从右边添加
    >>> print(d)
    deque(['1', '2'])

    双向队列中的方法

    >>> d.append('2')
    >>> print(d)
    deque(['1', '2'])
    >>> d.append('2')
    >>> print(d)
    deque(['1', '2', '2'])      #计数
    >>> d.count('2')
    
    >>> d.extend(['33','44'])       #扩展
    >>> print(d)
    deque(['1', '2', '2', '33', '44'])
    
    >>> d.extendleft(['11','22'])      #从左边扩展
    >>> print(d)
    deque(['22', '11', '1', '2', '2', '33', '44'])     #注意顺序,队列是先进先出的
    
    >>> d.pop()      #从右边取数据
    '44'
    >>> d.pop()
    '33'
    >>>
    
    >>> d.popleft()     #从左边取数据
    '22'
    >>> d.popleft()
    '11'
    >>>
    
    >>> print(d)
    deque(['1', '2', '2'])
    >>> d.remove("2")     #从队列中删除数据
    >>> print(d)
    deque(['1', '2'])
    
    >>> d.append(["33","44"])    #向队列中添加列表
    >>> print(d)
    deque(['1', '2', ['33', '44']]) 
    >>> d.rotate(1)           #把最后一个放到前面
    >>> print(d)
    deque([['33', '44'], '1', '2'])
    
    >>> d.rotate(2)           #把最后两个放到前面
    >>> print(d)
    deque(['1', '2', ['33', '44']])
    
    >>> d.reverse()        #反转
    >>> print(d)
    deque([['33', '44'], '2', '1'])

     

    单向队列:

    单向队列需要import queue

    >>> import queue
    >>> q = queue.Queue()    #创建单向队列
    >>> type(q)
    <class 'queue.Queue'>

    单向队列的方法

    >>> q.put("a")                #往队列中放元素
    >>> q.put(["b","c"])
    >>> print(q)
    <queue.Queue object at 0x000000000309DE80>
    
    >>> q.qsize()             #队列中元素的个数
    2 
    
    >>> q.get()     #往外拿元素,先进先出,当元素被拿完时,队列会处于等待状态,直到有元素被put
    'a'
    >>> q.get()
    ['b', 'c']
    >>> q.get()
    
    >>> q = queue.Queue()
    >>> q.empty()                 #队列是否为空
    True 
    
    >>> q = queue.Queue(maxsize = 3)    #定义队列的最大长度
    >>> q.put(1)
    >>> q.put(2)
    >>> q.put(3)
    >>> q.put(4)     #当put的元素超出最大长度时队列会处于等待状态,直到空出数据单元
  • 相关阅读:
    [每日短篇] 1C
    项目Alpha冲刺 Day12
    项目Alpha冲刺 Day12
    [转载]MVC中单用户登录
    GitLab
    Git 版本控制
    Jenkins持续集成
    Jenkins安装
    Docker 网络基础原理
    java中内存的使用
  • 原文地址:https://www.cnblogs.com/huangxm/p/5215583.html
Copyright © 2011-2022 走看看