#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 dequeIn [6]:#增加元素方式:#1. appenddef 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. insertdef insert_test001(): insert_test = deque() insert_test.insert(0,"insert001") #注意insert需要传递两个参数,其中第一个参数是需要插入的位置 print(insert_test) insert_test001()deque(['insert001'])In [14]:#3. extenddef 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. removedef 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)in () 11 remove_test.remove(9) 12 print(remove_test)---> 13 remove_test001() 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 dequeIn [22]:#5. popdef 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, indexdef 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统计一个不存在元素:100获取62所在位置6获取一个不存在得元素得位置:10---------------------------------------------------------------------------ValueError Traceback (most recent call last) in () 14 print(count_test.index(10)) 15 ---> 16 count_test001() 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 dequeIn [30]:#7. reversedef 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 [ ]: