zoukankan      html  css  js  c++  java
  • 编号001:deque用法暂时总结

    #deque的用法总结
    
    
    In [1]:
    
    
    """
    所在地址:from collections import deque
    现在知道的情况总结:
        1.deque的用法与list的操作很像
            1.队列增加数据3种方式:append(left), insert, extend(left)。
            2.删除数据2种方式:remove, pop(left)。需要注意返回值,remove删除的是第一个匹配项返回删除后的列表,pop删除后返回删除的元素
            3.统计元素个数1种方式:count(argv)。
            4.查找元素位置1种方式:index(argv)。找不到的时候结果怎样?
            5.排序1种方式:reverse。
        2.特性:用来保留历史数据,用来保留最新的5个数据,其他的更久的数据不保存。
            1.参数设定:deque(maxlen=5), maxlen必须要指定。
            2.没有指定参数时deque的处理方式与list类似,可以无穷大
            
    """
    #方法操作如下:
    from collections import deque
    
    
    In [6]:
    
    
    #增加元素方式:
    #1. append
    def append_test001():
        append_test = deque()
        append_test.append("appent_test_001")
        print("增加第一个元素")
        print(append_test)
        append_test.append("appent_test_002")
        print("增加第二个元素")
        print(append_test)
        append_test.appendleft("appent_test_left_001")
        print("在开头增加元素")
        print(append_test)
        print("##append_test001:")
        print(append_test)
        
    append_test001()    
    
    
    
    增加第一个元素
    deque(['appent_test_001'])
    增加第二个元素
    deque(['appent_test_001', 'appent_test_002'])
    在开头增加元素
    deque(['appent_test_left_001', 'appent_test_001', 'appent_test_002'])
    ##append_test001:
    deque(['appent_test_left_001', 'appent_test_001', 'appent_test_002'])
    In [10]:
    
    
    #2. insert
    def insert_test001():
        insert_test = deque()
        insert_test.insert(0,"insert001")      #注意insert需要传递两个参数,其中第一个参数是需要插入的位置
        print(insert_test)
        
    insert_test001()
    
    
    
    deque(['insert001'])
    In [14]:
    
    
    #3. extend
    def extend_test001():
        extend_test = deque()
        extend_test.extend([1,2,3])
        print("在右侧追加:")
        print(extend_test)
        extend_test.extendleft([4,5,6,6])
        print("在左侧追加:")
        print(extend_test)
        
    extend_test001()
    
    
    
    在右侧追加:
    deque([1, 2, 3])
    在左侧追加:
    deque([6, 6, 5, 4, 1, 2, 3])
    In [16]:
    
    
    #4. remove
    def remove_test001():
        remove_test = deque()
        remove_test.extend([1,23,4,45,1,2,2,4])
        print("最原始的remove_test:")
        print(remove_test)
        remove_test.remove(1)
        print("删除其中一个元素1后:")
        print(remove_test)
        print("准备删除一个不存在的元素9:")
        remove_test.remove(9)
        print(remove_test)
    remove_test001()
    
    
    
    最原始的remove_test:
    deque([1, 23, 4, 45, 1, 2, 2, 4])
    删除其中一个元素1后:
    deque([23, 4, 45, 1, 2, 2, 4])
    准备删除一个不存在的元素9:
    
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-16-4e5363eb2dd4> in <module>()
         11     remove_test.remove(9)
         12     print(remove_test)
    ---> 13 remove_test001()
    
    <ipython-input-16-4e5363eb2dd4> in remove_test001()
          9     print(remove_test)
         10     print("准备删除一个不存在的元素9:")
    ---> 11     remove_test.remove(9)
         12     print(remove_test)
         13 remove_test001()
    
    ValueError: deque.remove(x): x not in deque
    
    In [22]:
    
    
    #5. pop
    def pop_test001():
        pop_test = deque()
        pop_test.extend([1,2,4,5,65,6,7,7])
        print("删除前:")
        print(pop_test)
        a = pop_test.pop()
        print("查看返回值:")
        print(a)
        print("执行一次pop后:")
        print(pop_test)
        b = pop_test.popleft()
        print("执行一次popleft")
        print("查看返回值")
        print(b)
        print("删除后的结果:")
        print(pop_test)
        #下面的代码是警告自己,pop没有参数指定
        print("删除一个不存在的元素10:")
        pop_test.pop(10)
        print(pop_test)
        
    pop_test001()
    
    
    
    删除前:
    deque([1, 2, 4, 5, 65, 6, 7, 7])
    查看返回值:
    7
    执行一次pop后:
    deque([1, 2, 4, 5, 65, 6, 7])
    执行一次popleft
    查看返回值
    1
    删除后的结果:
    deque([2, 4, 5, 65, 6, 7])
    In [26]:
    
    
    #6. count, index
    def count_test001():
        count_test = deque()
        count_test.extend([1,2,3,4,5,6,62,2,1,2])
        print("初始值:")
        print(count_test)
        print("统计1得数目")
        print(count_test.count(1))
        print("统计一个不存在元素:10")
        print(count_test.count(10))
        print("获取62所在位置")
        print(count_test.index(62))
        print("获取一个不存在得元素得位置:10")
        print(count_test.index(10))
        
    count_test001()
    
    
    
    初始值:
    deque([1, 2, 3, 4, 5, 6, 62, 2, 1, 2])
    统计1得数目
    2
    统计一个不存在元素:10
    0
    获取62所在位置
    6
    获取一个不存在得元素得位置:10
    
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-26-d09d49a25f91> in <module>()
         14     print(count_test.index(10))
         15 
    ---> 16 count_test001()
    
    <ipython-input-26-d09d49a25f91> in count_test001()
         12     print(count_test.index(62))
         13     print("获取一个不存在得元素得位置:10")
    ---> 14     print(count_test.index(10))
         15 
         16 count_test001()
    
    ValueError: 10 is not in deque
    
    In [30]:
    
    
    #7. reverse
    def reverse_test001():
        reverse_test = deque()
        reverse_test.extend([1,2,3,5,67,1,23,5,23,2,3,4])
        print("最开始的数据:")
        print(reverse_test)
        reverse_list = reverse_test.reverse()
        print("reverse后的返回值:")
        print(reverse_list)
        print("原deque:")
        print(reverse_test)
        
    reverse_test001()
    
    
    
    最开始的数据:
    deque([1, 2, 3, 5, 67, 1, 23, 5, 23, 2, 3, 4])
    reverse后的返回值:
    None
    原deque:
    deque([4, 3, 2, 23, 5, 23, 1, 67, 5, 3, 2, 1])
    In [32]:
    
    
    #8. 保留最新5个数据
    def leave_last_data():
        leave_data = deque(maxlen=5)
        leave_data.extend([1,2,3,4,5,6,7,7])
        print(leave_data)
        
    leave_last_data()
    
    
    
    deque([4, 5, 6, 7, 7], maxlen=5)
    In [ ]:
    
    
    ​
  • 相关阅读:
    quick cocos naja
    quick cocos sprite 3 zhongfangshi
    quick cocos moveto
    quick cocos animate2
    quick cocos animate
    quick cocos schedule
    quick cocos scheduler update
    【leetcode】括号的最大嵌套深度
    【leetcode】删除某些元素后的数组均值
    【leetcode】二叉树的最小深度
  • 原文地址:https://www.cnblogs.com/tanghuang/p/8608577.html
Copyright © 2011-2022 走看看