• 双端队列deque学习


    In [19]: from collections import deque                                                         
    创建deque对象,并存入0-9 设置最大长度为10,这一旦设置就无法更改
    In [20]: dq = deque(range(10),maxlen=10)                                                       
    
    In [21]: dq                                                                                    
    Out[21]: deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    dq.rotate(n),队列的旋转,参数n>0,队列最右边n个元素会被移到队列的左边,n<0时,队列左边的n个元素,移动到队列的右边
    In [22]: dq.rotate(3)                                                                          
    
    In [23]: dq                                                                                    
    Out[23]: deque([7, 8, 9, 0, 1, 2, 3, 4, 5, 6])
    
    In [24]: dq.rotate(-4)                                                                         
    
    In [25]: dq                                                                                    
    Out[25]: deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
    在队列左边插入元素,因队列长度限制,会把最右边的元素挤出队列
    In [26]: dq.appendleft(-1)                                                                     
    
    In [27]: dq                                                                                    
    Out[27]: deque([-1, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    extend(iter),参数为可迭代的列表之类的,在队列的最右边插入元素,把左边多余的元素挤出队列
    In [28]: dq.extend([11,22,33])       

      In [30]: dq
      Out[30]: deque([3, 4, 5, 6, 7, 8, 9, 11, 22, 33])

      extendleft(iter),在队列的左边插入元素,逆序插入

      In [31]: dq.extendleft([55,66,77,88])

      In [32]: dq
      Out[32]: deque([88, 77, 66, 55, 3, 4, 5, 6, 7, 8])

  • 相关阅读:
    C#的集合类(二)Hashtable、SortedList、Dictionary
    下载文件-JavaScript
    ASP.NET(C#)图片加文字、图片水印
    C# DataTable 互转 List<T>
    C# 将 DataTable 转 List<T>、首行转 T
    C# 金额转中文大写
    监听端口守护进程
    数据库操作的九大步骤
    日志方法
    sqlserver 查找所有子级
  • 原文地址:https://www.cnblogs.com/superniao/p/10643070.html
Copyright © 2020-2023  润新知