zoukankan      html  css  js  c++  java
  • Python 双向队列Deque、单向队列Queue 模块使用详解

    Python 双向队列Deque 模块使用详解

    创建双向队列Deque序列

    双向队列Deque提供了类似list的操作方法:

    #!/usr/bin/python3
    
    import collections
    #创建队列
    d = collections.deque()
    
    d.append("1")
    d.append("2")
    d.append("3")
    print(len(d))
    print(d[0])
    print(d[-1])

     执行结果:

    3
    1
    3
    

    两端都使用pop:

    #!/usr/bin/python3
    
    import collections
    #创建队列
    d = collections.deque("12345")
    print(len(d))
    print(d.popleft())
    print(d.pop())
    print(d)

    执行结果:

    5
    1
    5
    deque(['2', '3', '4'])
    

    我们还可以限制deque的长度:

    d1 = collections.deque(maxlen=30)
    

    当限制长度的deque增加超过限制数的项时, 另一边的项会自动删除:

    #!/usr/bin/python3
    
    import collections
    
    #创建队列
    d = collections.deque(maxlen=2)
    d.append(1)
    d.append(2)
    print(d)
    d.append(3)
    print(d)
    

    执行结果:

    deque([1, 2], maxlen=2)
    deque([2, 3], maxlen=2)
    

    添加list中各项到deque中:

    #!/usr/bin/python3
    
    import collections
    
    #创建队列
    d = collections.deque([1,2,3,4,5])
    print(d)
    d.extendleft([0])
    print(d)
    d.extend([6,7,8])
    print(d)
    

    执行结果:

    deque([1, 2, 3, 4, 5])
    deque([0, 1, 2, 3, 4, 5])
    deque([0, 1, 2, 3, 4, 5, 6, 7, 8])
    

  • 相关阅读:
    面向过程思想理解:
    Ajax的get请求向服务器请求数据五步骤?
    什么是Ajax无刷新技术?
    Ajax和JavaScript的区别
    为什么要用ajax
    好文章分享
    easyui系列之表单二Combogrid,Form,filebox,CheckBox(3)
    属性vs字段的关系
    jQuery-Load方法
    .Net 百度经纬度转高德
  • 原文地址:https://www.cnblogs.com/chenlin163/p/7259145.html
Copyright © 2011-2022 走看看