我的编程空间,编程开发者的网络收藏夹
学习永远不晚

3 . python Collectio

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

3 . python Collectio

语法:

    class collections.deque([iterable[, maxlen]])

    返回从左到右初始化的新deque对象(使用append())和来自iterable(可迭代的)的数据。 如果未指定iterable(迭代),则新的deque为空。


    Deques是堆栈和队列的概括(名称发音为“deck”,是“双端队列”的缩写)。 

    Deques支持线程安全,高效的内存追加和从"双端队列"的弹出,并且在任一方向都具有大致相同的O(1) [注:时间复杂度]性能。

    尽管列表对象支持类似的操作,但是它们针对快速固定长度操作进行了优化,并且会导致pop(0)和insert(0, v)操作的O(n)内存移动成本,这些操作改变底层数据表示的大小和位置。


    如果未指定maxlen或为None,则deques可能会增长到任意长度。 否则,deque被限制为指定的最大长度。一旦有限长度的deque已满,当添加新项目时,相应数量的项目将从相反的一端被丢弃。 有界长度deques提供类似于Unix中尾部过滤器的功能。 它们也可用于跟踪仅涉及最近活动的事物和其他数据池。


Deque对象支持以下方法:

    append(x)                           将x添加到双端队列的右侧。

    appendleft(x)                  将x添加到双端队列的左侧。

    clear()                               删除deque中的所有元素,使其长度为0。

    copy()                                 创建一个deque的浅表副本。3.5版本中的新功能。

    count(x)                             计算deque元素的数量等于x。3.2版本中的新功能

    extend(iterable)                 通过追加iterable参数中的元素来扩展双端队列的右侧。

    extendleft(iterable)        通过追加iterable中的元素来扩展双端队列的左侧。请注意,一系列左边追加结果会颠倒迭代参数中元素的顺序。

    index(x[, start[, stop]])       返回deque中的x的位置(在索引开始处或索引停止之前)。如果未找到,则返回第一个匹配或引发ValueError。

    insert(i, x)                        将x插入位置i处的deque中。3.5版本中的新功能。如果插入会导致有界的deque超出maxlen,则会引发IndexError。

    pop()                                   从deque的右侧移除并返回一个元素。 如果没有元素存在,则引发IndexError。

    popleft()                          从deque的左侧移除并返回一个元素。 如果没有元素存在,则引发IndexError

    remove(value)                   删除第一次出现的值。 如果找不到,则会引发ValueError。

    reverse()                         反序排列deque的元素,然后返回None。New in version 3.2.

    rotate(n=1)                     向右旋转deque n个步。 如果n为负数,则向左旋转。

                                            解释:

                                            当deque不为空时:

                                            向右旋转一个等同于 d.appendleft(d.pop())

                                            向左旋转一个等同于 d.append(d.popleft())

    

    另,Deque对象还提供一个只读属性

        maxlen

        最大的deque的大小,如果×××限,则为None.    [3.1版本引入]


    除上述之外,deques支持迭代、pickling、len(d)、reverse(d)、copy.copy(d)、copy.deepcopy(d),使用 in 运算符进行成员资格测试,以及下标引用,例如:d[-1]。

    索引访问在两端都是O(1),但在中间减慢到O(n)。

    对于快速随机访问,请改用列表。


    从版本3.5开始,deques开始支持__add__(), __mul__(), __imul__()。

    

    下面是例子:

image.png



deque Recipes(食谱???黑人问号脸)

本节介绍处理deques的各种方法。

有界长度的deques提供了类似于Unix中尾部过滤器的功能:

image.png

#返回文件的最后n行


另一种使用deques的方法是通过向右追加并弹出到左边来维护一系列新添加的元素:

image.png


    rotate()方法提供了一种实现双端切片和删除的方法。

    例如,del d[n]的纯Python实现依赖于rotate()方法来定位要弹出的元素:

image.png

    为了实现deque切片,使用类似的方法来应用rotate( )来将目标元素置于双端队列的左侧。 

    使用popleft( )删除旧条目,使用extend( )添加新条目,然后反转旋转。 

    通过该方法的细微变化,很容易实现Forth样式的堆栈操作,如dup,drop,swap,over,pick,rot和roll。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

3 . python Collectio

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

3 . python Collectio

语法:    class collections.deque([iterable[, maxlen]])    返回从左到右初始化的新deque对象(使用append())和来自iterable(可迭代的)的数据。 如果未指定iterabl
2023-01-31

2 . python Collectio

nametuple() 是具有命名字段的元组的工厂函数命名元组为元组中每个位置赋予含义,并允许更具可读性的自编写代码 它们可以在任何使用常规元组的地方使用,并且他们添加了按名称而不是位置索引访问字段的功能。用法:collections.na
2023-01-31

python 内置模块collectio

1、namedtuplefrom collections import namedtuplewebsites = [('Sohu', 'http://www.google.com/', u'张朝阳'),('Sina', 'http://ww
2023-01-31

Python(3)

一、函数:1、概念和语法、返回值:(1)、概念:函数是python为了代码最大程度地重用和最小代码冗余而提供的基本程序结构。函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件。(2)、语法:  def functionName(
2023-01-31

python 3 socket

server.py:import socketdef main():    host = '127.0.0.1'    port = 5000    server_socket = socket.socket()    server_soc
2023-01-31

python学习整理--3/3

今天又重新学起了python这门语言,带着新的目的和又涨一岁的自己,其实早在去年的暑期曾学过一段时间,但是最后无疾而终,这次我真心希望可以掌握一门实用的语言来充实自己,之前的学的不论是c还是java,自我感觉除了做题以外一点都用不上,但感觉
2023-01-31

Python 2 和 Python 3

Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷。---摘录自《流畅的Python》  你可能从来没有听说过学 Java
2023-01-31

Python -- 操作字符串[3/3]

1,splitlines()yuan@ThinkPad-SL510:~$ ipython -nobanner  In [1]: multiline_string = """This    ...: is    ...: a multilin
2023-01-31

Python 3 教程

Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
Python 3 教程
2017-08-12

python CookBook 3 1.

问题:    你需要从一个可迭代对象中拆解出N个元素,但是它可能多于N个元素并导致抛出“too many values to unpack”的异常解决:    python的“带星参数”可以搞定这个问题。比如说,你开了一门课并且决定在期末的
2023-01-31

python 题目3

磁盘使用情况root@ubuntu:/data/server/spider/面试题# cat 02check_disk.py import timeimport osnew_time = time.strftime('%Y-%m-%d')p
2023-01-31

3.Python对象

一.对象Python 对象 : Python使用对象模型来存储数据.构造任何类型的值都是一个对象,. 尽管Python通常当成一种 "面向对象的编程语言" ,但是你完全能够写出不使用任何类和实例的实用脚本.所有的Python对象都拥有三个特
2023-01-31

python--作业3

作业题目:6题程序:测试:7题程序:测试:
2023-01-31

python 函数3

函数>>> def ds(x):                         return 2 * x + 1>>> ds(5)11>>> lambda x : 2 * x + 1                 
2023-01-31

Python练习3

无意看到老男孩的博文:合格linux运维人员必会的30道shell编程面试题及讲解http://oldboy.blog.51cto.com/2561410/1632876尝试着用刚开始学的python解答一些,权当练手了!如有错误,还请批评
2023-01-31

Python作业3

1.   ***程序  2.    ***程序   3.    ***程序     测试
2023-01-31

【Python】|廖雪峰python 3

廖雪峰python 3教程打印版(pdf)完整版请大家下载完整版的教程,原来的第一部分就不要下载了。这次给pdf加上了书签,更方便查阅。完整版并没有包括实战部分,原因附在文档最后,希望大家下载完毕后评个分。为什么下载数远大于评论数啊。。。下
2023-01-31

OpenCV(3.2)+Python(3

博主最近由于项目需求,需要学习OpenCV,在查看并试验了几种语言之后决定用Python作为开发语言。刚开始学习也是各种网上找资料,但是网上的资料过于杂乱,最后还是觉得官方API最全面。所以博主梳理近期学习OpenCV官方文档的过程,并且用
2023-01-31

学习python[3] python 读

转载自:http://blog.csdn.net/yukin_xue/article/details/9769803Python直接读取中文路径的文件时失败,可做如下处理:dst3 = "D:/test/测试文件夹.txt"uipath =
2023-01-31

python 函数(3)

1. 函数小高级 ( 5* )1 函数名可以当作变量来使用def func(): print(123)v1 = func # func代表函数的地址func()v1() # v1、func的函数地址相同,执行调用的函数也相同de
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录