iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中的deque模块(collections的deque模块)
  • 607
分享到

python中的deque模块(collections的deque模块)

python开发语言collectionsdeque队列 2023-09-25 13:09:28 607人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录 1. deque是python的collections中的一个类 2.deque的简单使用以及它的方法 2.1 创建deque的方法  2.2 创建deque时,并指定大小maxlen,即能装几个元素, 以及d

目录

1. deque是python的collections中的一个类

2.deque的简单使用以及它的方法

2.1 创建deque的方法

 2.2 创建deque时,并指定大小maxlen,即能装几个元素, 以及deque添加元素append()方法

2.3  deque的 appendleft()方法

2.4 deque的 clear()方法

2.5 deque的 copy()方法

2.6 deque的count方法

2.7 deque中的extend()方法

2.8 deque中的extendleft()方法

2.9 deque中的index方法

2.10 deque中的insert方法

2.11 deque中的pop方法

2.12 deque中的popleft方法

2.13 deque中的remove方法

2.14 deque中的reverse方法

2.15 deque中的rotate方法


1. deque是python的collections中的一个类

deque的对象像是一个列表,只不过可以固定这个deque对象的大小,以及列表是在队列的两端执行添加和弹出元素的操作,可以理解为,deque是一个双向的队列,

尽管你也可以手动在一个列表上实现这一的操作(比如增加、删除等等)。但是这里的队列方案会更加优雅并且运行得更快些。

以下是部分源码,以及部分方法:

class deque(object):    """    deque([iterable[, maxlen]]) --> deque object        A list-like sequence optimized for data accesses near its endpoints.    """    def append(self, *args, **kwargs): # real signature unknown        """ Add an element to the right side of the deque. """        pass    def appendleft(self, *args, **kwargs): # real signature unknown        """ Add an element to the left side of the deque. """        pass    def clear(self, *args, **kwargs): # real signature unknown        """ Remove all elements from the deque. """        pass    def copy(self, *args, **kwargs): # real signature unknown        """ Return a shallow copy of a deque. """        pass    def count(self, value): # real signature unknown; restored from __doc__        """ D.count(value) -> integer -- return number of occurrences of value """        return 0    def extend(self, *args, **kwargs): # real signature unknown        """ Extend the right side of the deque with elements from the iterable """        pass    def extendleft(self, *args, **kwargs): # real signature unknown        """ Extend the left side of the deque with elements from the iterable """        pass    def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__        """        D.index(value, [start, [stop]]) -> integer -- return first index of value.        Raises ValueError if the value is not present.        """        return 0    def insert(self, index, p_object): # real signature unknown; restored from __doc__        """ D.insert(index, object) -- insert object before index """        pass    def pop(self, *args, **kwargs): # real signature unknown        """ Remove and return the rightmost element. """        pass    def popleft(self, *args, **kwargs): # real signature unknown        """ Remove and return the leftmost element. """        pass    def remove(self, value): # real signature unknown; restored from __doc__        """ D.remove(value) -- remove first occurrence of value. """        pass    def reverse(self): # real signature unknown; restored from __doc__        """ D.reverse() -- reverse *IN PLACE* """        pass    def rotate(self, *args, **kwargs): # real signature unknown        """ Rotate the deque n steps to the right (default n=1).  If n is negative, rotates left. """        pass

2.deque的简单使用以及它的方法

2.1 创建deque的方法

可以创建一个空的deque,也可以创建带数据的deque,这个数据,我们通过源码看,必须是一个可迭代的对象接口,列表,元组等等。

from collections import deque# 创建一个空的dequedata = deque()print(data)print("=" * 60)# 创建有数据的dequedata1 = deque('abcd')print(data1)print("=" * 60)# 创建有数据的dequedata2 = deque([1, 2, 3, 4])print(data2)print("=" * 60)

 2.2 创建deque时,并指定大小maxlen,即能装几个元素, 以及deque添加元素append()方法

from collections import deque# 创建一个空的deque, 并指定最大的元素是3个data = deque(maxlen=3)data.append(1)data.append(2)data.append(3)print(data)data.append(4)print(data)

运行结果,我们可以看到,当新的元素加入并且这个队列已满的时候,最老的元素会自动被移除掉

 

2.3  deque的 appendleft()方法

从deque队列的左侧添加数据,append()就是默认就尾部即右侧添加数据

from collections import dequedata = deque('123')print(data)print("=" * 60)data.appendleft(0)print(data)

运行结果

deque(['1', '2', '3'])============================================================deque([0, '1', '2', '3'])

2.4 deque的 clear()方法

清空deque队列,让其变成空队列

from collections import dequedata = deque('123')print(data)print("=" * 60)data.clear()print(data)

运行结果

deque(['1', '2', '3'])============================================================deque([])

2.5 deque的 copy()方法

deque的copy方法相当于深拷贝,拷贝后的地址不相同,并且原来的值修改后,不会影响拷贝后的值。

from collections import dequedata1 = deque('123')print(data1)print("=" * 60)data2 = data1.copy()print(data2)print("地址比较")print("data1的地址", id(data1))print("data2的地址", id(data2))print("修改数据后,看变化")data1.append('4')print(data1)print("=" * 60)print(data2)

运行结果:

deque(['1', '2', '3'])============================================================deque(['1', '2', '3'])地址比较data1的地址 2404465361192data2的地址 2404465361304修改数据后,看变化deque(['1', '2', '3', '4'])============================================================deque(['1', '2', '3'])

2.6 deque的count方法

count(value),获取deque队列中某个元素的个数

from collections import dequedata1 = deque('123333333')print(data1)print("=" * 60)count = data1.count('3')print(count)

运行结果:

deque(['1', '2', '3', '3', '3', '3', '3', '3', '3'])============================================================7

2.7 deque中的extend()方法

两个队列合并,extend(value),  value的值可以是deque对象也可以是可迭代的对象,字符串,列表,元组等等

from collections import dequedata1 = deque('123')data2 = deque('456')data1.extend(data2)print(data1)

运行结果

deque(['1', '2', '3', '4', '5', '6'])

2.8 deque中的extendleft()方法

两个队列合并,从左侧合并,extendleft(value),  value的值可以是deque对象也可以是可迭代的对象,字符串,列表,元组等等

要注意。合并时候,value的值,也是反着来的,注意看下面的打印,从左侧开始往里面加

from collections import dequedata1 = deque('123')data1.extendleft('456')print(data1)

运行结果:

deque(['6', '5', '4', '1', '2', '3'])

2.9 deque中的index方法

index(value,start=None,end=None),  怎么使用请看代码

from collections import dequedata1 = deque('helloWord')print(data1.index('o'))     # 有多个的话,取第一个的索引位置print(data1.index('o', 5))  # 从第五个开始(索引从0开始)print(data1.index('o', 5, 8))  # 从第五个开始 -- 第八个结束

运行结果:

466

2.10 deque中的insert方法

insert(index,value), 在index位置上,插入value值,   注意顺序

from collections import dequedata1 = deque('helloword')data1.insert(0, '1')    # 在第一个位置上插入 1data1.insert(0, '2')    # 在第一个位置上插入 2data1.insert(0, ['123'])    # 在第一个位置上插入 列表123print(data1)

运行结果:

deque([['123'], '2', '1', 'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'd'])

2.11 deque中的pop方法

pop() 方法弹出元素,从尾部弹出,并且返回弹出的这个元素

from collections import dequedata1 = deque('12345')print(data1.pop())  # 弹出元素,从右侧即末尾弹出,并返回print(data1.pop())  # 弹出元素,从右侧即末尾弹出,并返回print(data1)

2.12 deque中的popleft方法

popleft() 方法弹出元素,从头部弹出,并且返回弹出的这个元素

在队列两端插入或删除元素时间复杂度都是 O(1) ,而在列表的开头插入或删除元 素的时间复杂度为 O(N) 。

from collections import dequedata1 = deque('12345')print(data1.popleft())  # 弹出元素,从左侧侧即头部弹出,并返回print(data1.popleft())  # 弹出元素,从左侧侧即头部弹出,并返回print(data1)

2.13 deque中的remove方法

remove(value)方法,将deque队列某个元素进行移除

from collections import dequedata1 = deque('12345')data1.remove('1')print(data1)

2.14 deque中的reverse方法

reverse()方法,将deque队列进行反转

from collections import dequedata1 = deque('12345')data1.reverse()print(data1)
deque(['5', '4', '3', '2', '1'])Process finished with exit code 0

2.15 deque中的rotate方法

rotate(n)   ,  将队列 向右旋转n步(默认n=1)。如果n为负,则向左旋转。

from collections import dequedata1 = deque('12345')data1.rotate(3)print(data1)data1.rotate(-3)print(data1)
deque(['3', '4', '5', '1', '2'])deque(['1', '2', '3', '4', '5'])

来源地址:https://blog.csdn.net/wei18791957243/article/details/126891658

--结束END--

本文标题: python中的deque模块(collections的deque模块)

本文链接: https://www.lsjlt.com/news/417410.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • python中的deque模块(collections的deque模块)
    目录 1. deque是python的collections中的一个类 2.deque的简单使用以及它的方法 2.1 创建deque的方法  2.2 创建deque时,并指定大小maxlen,即能装几个元素, 以及d...
    99+
    2023-09-25
    python 开发语言 collections deque 队列
  • python 中collections的 deque使用详解
    目录1 概要2 重要方法说明3 总结1 概要 deque 是一个双端队列, 如果要经常从两端append 的数据, 选择这个数据结构就比较好了, 如果要实现随机访问,不建议用这个,请...
    99+
    2024-04-02
  • 25 Python的collections模块
    概述         在上一节,我们介绍了Python的sqlite3模块,包括:sqlite3模块中一些常用的函数和类。在这一节,我们将介绍Python的collections模块。collections模块是Python中的内置模块,它...
    99+
    2023-10-19
    python collections模块
  • python模块之collections
    计数器 Counter 计数元素迭代器 elements() 计数对象拷贝 copy() 计数对象清空 clear() from collections import Counter #import collection...
    99+
    2023-01-30
    模块 python collections
  • collections模块
      collections模块在内置数据类型(dict、list、set、tuple)的基础上,还提供了几个额外的数据类型:ChainMap、Counter、deque、defaultdict、namedtuple和OrderedDict...
    99+
    2023-01-30
    模块 collections
  • 3 - collections 模块
    collections 数据类型主要是为了弥补 list /tuple / dict 的额外数据类型 ChainMap 代码: import collections ## 赋值,合并字典的作用 a = {'a':"A"} b = {"b...
    99+
    2023-01-31
    模块 collections
  • Python中 Collections 模块如何使用
    今天就跟大家聊聊有关Python中 Collections 模块如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。collections模块是一个不用不知道,一用就上瘾的模块。这...
    99+
    2023-06-15
  • 集合模块collections
    collections是Python内建的一个集合模块,提供了许多有用的集合类。 namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> p = (1, 2) 但是,看到...
    99+
    2023-01-31
    模块 collections
  • python3--模块configparser,logging,collections
    configparser模块该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)创建文件import configparserconfig = configpar...
    99+
    2023-01-30
    模块 configparser collections
  • collections模块如何在Python中使用
    这期内容当中小编将会给大家带来有关collections模块如何在Python中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据...
    99+
    2023-06-14
  • 必须知道的collections模块
    先来看一下collections模块中的方法: __all__ = ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList', 'UserStrin...
    99+
    2023-01-31
    模块 collections
  • 聊聊Python的一个内置模块Collections
    1、模块说明collections 是 Python 的一个内置模块,所谓内置模块的意思是指 Python 内部封装好的模块,无需安装即可直接使用。collections 包含了一些特殊的容器,针对 Python 内置的容器,例如:list...
    99+
    2023-05-14
    Python 函数 内置模块
  • Python中的sys模块、random模块和math模块
    一、sys运行时环境模块 sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。 用法: sys.argv:命令行参数List,第...
    99+
    2024-04-02
  • python3--模块collections,time,random,sys
    defaultdict(默认字典)有如下值集合[11,22,33,44,55,66,77,88,99,90......],将所有大于66的值保存至字典的第一个key中,小于66的值保存至第二个key的值中即:{'k1':大于...
    99+
    2023-01-30
    模块 collections sys
  • Python中的time模块和calendar模块
    目录1、时间戳2、时间元组3、获取当前时间4、格式化时间5、格式化日期6、获取CPU时间7、日历模块在Python中对时间和日期的处理方式有很多,其中转换日期是最常见的一个功能。Py...
    99+
    2024-04-02
  • 如何在Python项目中使用collections模块
    这篇文章主要介绍了如何在Python项目中使用collections模块,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;...
    99+
    2023-06-06
  • python中的sys模块和os模块
    目录1.sys模块2.os模块(和操作系统相关数据)1.sys模块 sys模块的常见函数列表: sys.argv: 实现从程序外部向程序传递参数。sys.exit([arg]): 程...
    99+
    2024-04-02
  • Python内置模块Collections如何使用
    本篇内容主要讲解“Python内置模块Collections如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python内置模块Collections如何使用”吧!1、模块说明collec...
    99+
    2023-06-29
  • Python中的collections集合与typing数据类型模块
    目录一、collections集合1、namedtuple:命名tuple对象2、deque:双端队列3、defaultdict:默认字典4、OrderedDict:顺序字典5、Co...
    99+
    2024-04-02
  • Python的一个内置模块Collections怎么使用
    这篇文章主要讲解了“Python的一个内置模块Collections怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的一个内置模块Collections怎么使用”吧!1、模...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作