python collection模块,collections python

  python collection模块,collections python

  Collections是Python的内置模块。所谓内置模块,就是封装在Python内部的模块,不需要安装就可以直接使用。本文将详细讲解集合的用法,有需要的可以参考。

  00-1010 1、模块描述2、实际代码(1) testnametuple函数(2) testDeque函数(3)testDefaultdict函数(4) testOrderedDict函数(5) testCounter函数

  

目录

 

  Collections是Python的内置模块。所谓内置模块,就是封装在Python内部的模块,不需要安装就可以直接使用。

  Collections包含了一些特殊的容器,为Python的内置容器提供了另一种选择,比如list、dict、set、tuple。Namedtuple:可以创建一个带有名称的元组。Deque:类似list的容器,可以快速添加和删除队列头尾的元素。ordered dict:dict:dict的子类,可以记住元素的添加顺序。default dict:dict的子类,可以调用提供默认值的函数。counter:dict的一个子类,计算可以哈希的对象。

  

1、模块说明

 

  

2、 实战代码

 

  Python提供了很多非常容易使用的基本类型,比如不可变类型tuple,我们可以很容易地用它来表示一个二进制向量。

  Namedtuple是一个用于创建自定义元组对象的函数。它还指定了元组元素的数量,并且可以通过属性而不是索引来引用元组的一个元素。

  这样,我们就可以很容易地用namedtuple定义一个数据类型,它具有元组的不变性,可以根据属性引用,使用起来非常方便。

  在这个例子中,我们用一个三维坐标x,y,z来定义一个有三个对象元素的tuple对象,然后通过坐标值来引用对应的值。

  从集合导入命名元组

  从集合导入队列

  从集合导入默认字典

  从集合导入订单直接

  从集合导入计数器

  def testNamedTuple():

  vector=namedtuple(vector ,[x , y , z])

  flag=向量(3,4,5)

  打印(类型(标志))

  print(isinstance(flag,vector))

  Print (iSense (flag,tuple)) #通过这里的判断我们可以知道它是一个元组类型。

  print(flag.x,flag.y,flag.z)

  

(1) testNamedTuple函数

 

  Deque是堆栈和队列的通用实现。deque是‘双端队列’的缩写。

  dequee支持在dequee两端插入和删除线程安全、内存高效的元素,性能类似于O(1)。虽然list也支持类似的操作,但它主要是针对定长操作进行优化,从而在pop(0)和insert(0,v)上具有O(n)的时间复杂度(这将改变数据的位置和大小)。

  在数据结构中,我们知道队列和堆栈是两种非常重要的数据类型,一种是FIFO,一种是LIFO。

  在python中,使用list存储数据时,按索引访问元素的速度很快,但插入和删除元素的速度很慢。因为list是线性存储,在数据量很大的情况下,插入和删除的效率很低。

  Deque是一种双向链表结构,用于高效的插入和删除,非常适合队列和堆栈等数据结构。

  def testDeque():

  list1=[x*x for x in range(10

  1)]

   delist=deque(list1) #对列表进行了一次再处理,让list1列表变成了双向链表结构

   delist.append(1000)#将x添加到deque的右侧

   delist.appendleft(2000)#将x添加到deque的左侧

   delist.pop(1000)#移除和返回deque中最右侧的元素,如果没有元素,将会报出IndexError;

   delist.popleft()#移除和返回deque中最左侧的元素,如果没有元素,将会报出IndexError;

   delist.count(1)#返回deque中元素等于1的个数

   delist.remove(10000)#移除第一次出现的value,如果没有找到,报出ValueError;

   delist.reverse()#反转deque中的元素,并返回None;

   list2=[1,3,4,5]

   delist.extend(list2)#将可迭代变量iterable中的元素添加至deque的右侧

   delist.extendleft(list2)#将变量iterable中的元素添加至deque的左侧,往左侧添加序列的顺序与可迭代变量iterable中的元素相反

   delist.maxlen()#只读的属性,deque的最大长度,如果无解,就返回None

   delist.rotate(1)#从右侧反转n步,如果n为负数,则从左侧反转

   delist.clear()#将deque中的元素全部删除,最后长度为0;

  

 

  

(3)testDefaultdict函数

 

  defaultdict是内置数据类型 dict 的一个子类,基本功能与 dict 一样,只是重写了一个方法__missing__(key)和增加了一个可写的对象变量 default_factory。

  使用 dict 字典类型时,如果引用的 key 不存在,就会抛出 KeyError。如果希望 Key 不存在时,返回一个默认值,就可以用 defaultdict。

  

def testDefaultdict():

 

  

 

  

(4) testOrderedDict函数

 

  OrderedDict类似于正常的词典,只是它记住了元素插入的顺序,当在有序的词典上迭代时,返回的元素就是它们第一次添加的顺序。这样 dict 就是一个有序的字典。

  使用 dict 时,key 是无序的。在对 dict 做迭代时,我们无法确定 key 的顺序。但是如果想要保持 key 的顺序,可以用 OrderedDict。

  

def testOrderedDict():

 

  

 

  

(5) testCounter函数

 

  

def testCounter():

 

  到此这篇关于Python内置模块Collections的使用教程详解的文章就介绍到这了,更多相关Python Collections内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: