#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 [ ]: ​

编号001:deque用法暂时总结的更多相关文章

  1. STL之deque用法详解

    C++ Deque(双向队列): Deque是一种优化了的.对序列两端元素进行添加和删除操作的基本序列容器.它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用 ...

  2. deque用法 和与vector的区别

    deque是双向开口的连续性存储空间.虽说是连续性存储空间,但这种连续性只是表面上的,实际上它的内存是动态分配的,它在堆上分配了一块一块的动态储存区,每一块动态存储去本身是连续的,deque自身的机制 ...

  3. STL:deque用法详解

    deque函数: deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素.但它又与vector不同,deque支持高效插入和 ...

  4. STL deque用法

    Deque 容器 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容.deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中 ...

  5. STL之三:deque用法详解

    转载于:http://blog.csdn.net/longshengguoji/article/details/8519812 deque函数: deque容器为一个给定类型的元素进行线性处理,像向量 ...

  6. STL之deque用法

    deque:双端队列 底层是一个双向链表. 常用的有队列的尾部入队.首部出队. 普通队列:queuequeue 模板类的定义在<queue>头文件中.与stack 模板类很相似,queue ...

  7. deque 用法

    引用博客:https://blog.csdn.net/zyq522376829/article/details/46801973 下面是那位大佬写的的笔记整理~~~~ deque - 双向队列 1.构 ...

  8. Python:每日一题001

    题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? **程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 个人解 ...

  9. C++之deque

    deque(包含头文件#include<deque>)由若干段连续空间串接而成,一旦有必要在deque的头部或尾端增加新的空间,便配置一段定量连续的空间,串接在deque的头部或尾端.de ...

随机推荐

  1. install oh my zsh on ubuntu 16.04

    first,install zsh #安装zsh sudo apt-get install zsh #是否安装成功 cat /etc/shells #/bin/sh #/bin/bash #/bin/ ...

  2. Mongo rs

    概念 rs中存储了每一次对mongo数据库的CUD操作,对rs的大小进行resize. 主要有两种方法: 在未开启过rs的情况下,修改配置文件 已使用rs一段时间后,发现rs太大,重新进行大小配置 启 ...

  3. char和vachar的字段长度怎么影响数据库的性能的

    1.限制规则 字段的限制在字段定义的时候有以下规则: a)                  存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度 ...

  4. Java并发编程的艺术笔记(七)——CountDownLatch、CyclicBarrier详解

    一.等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作,像加强版的join.(t.join()是等待t线程完成) 例: (1)开启多个线程 ...

  5. 利用MFC在控件内将txt中的数据画图

    1:采集txt文件中的数据测试程序如下: #include "stdafx.h" #include <fstream> #include "iostream& ...

  6. 利用Zookeeper实现分布式锁

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  7. 第八周课程总结 & 实验报告(六)

    第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定 ...

  8. XMLHttpRequest 对象属性参数参考

    readyState:提供当前 HTML 的就绪状态. readyState可能返回的值: 0:请求未初始化(还没有调用 open()). 1:请求已经建立,但是还没有发送(还没有调用 send()) ...

  9. java 设计模式 单例模式之饿汉模式/懒汉模式 singleton pattern

    https://v.qq.com/x/page/e0364ung5zp.html 讲的不错, 关于 饿汉式单例模式 code Student 类: package com.test;//单例模式之   ...

  10. MySQL 树形结构 根据指定节点 获取其所有父节点序列

    背景说明 需求:MySQL树形结构, 根据指定的节点,获取其所有父节点序列. 问题分析 1.可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取父节点. 2.直接自定义MySQL函数  ...