iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python的一个内置模块Collections怎么使用
  • 733
分享到

Python的一个内置模块Collections怎么使用

2023-07-06 01:07:11 733人浏览 薄情痞子

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

摘要

这篇文章主要讲解了“python的一个内置模块Collections怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的一个内置模块Collections怎么使用”吧!1、模

这篇文章主要讲解了“python的一个内置模块Collections怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的一个内置模块Collections怎么使用”吧!

1、模块说明

collections 是 Python 的一个内置模块,所谓内置模块的意思是指 Python 内部封装好的模块,无需安装即可直接使用。

  • collections 包含了一些特殊的容器,针对 Python 内置的容器,例如:list、dict、set、tuple,提供了另一种选择。

  • namedtuple:可以创建包含名称的 tuple。

  • deque:类似于 list 的容器,可以快速的在队列头部和尾部添加、删除元素。

  • OrderedDict:dict的子类,可以记住元素的添加顺序。

  • defaultdict:dict的子类,可以调用提供默认值的函数。

  • Counter:dict的子类,计算可hash的对象。

2、 实战代码

(1) testNamedTuple函数

Python 提供了很多非常好用的基本类型,比如不可变类型 tuple,我们可以轻松地用它来表示一个二元向量。

namedtuple 是一个函数,它用来创建一个自定义的 tuple 对象,并且规定了 tuple 元素的个数,并可以用属性而不是索引来引用 tuple 的某个元素。

如此一来,我们用 namedtuple 可以很方便地定义一种数据类型,它具备 tuple 的不变性,又可以根据属性来引用,使用十分方便。

本示例中我们使用了一个三维坐标 x,y,z 来定义一个 tuple 对象,对象元素有3个,然后通过坐标值来引用相应的值即可。

from collections import namedtuplefrom collections import dequefrom collections import defaultdictfrom collections import OrderedDictfrom collections import Counterdef testNamedTuple():vector=namedtuple('vector',['x','y','z'])flag=vector(3,4,5)print(type(flag))print(isinstance(flag,vector))print(isinstance(flag,tuple)) #通过这里的判定我们就可以知晓它是元组类型print(flag.x,flag.y,flag.z)
(2) testDeque函数

deque是栈和队列的一种广义实现,deque是 "double-end queue" 的简称。

deque支持线程安全、有效内存地以近似O(1)的性能在 deque 的两端插入和删除元素,尽管 list 也支持相似的操作,但是它主要在固定长度操作上的优化,从而在 pop(0) 和 insert(0,v)(会改变数据的位置和大小)上有O(n)的时间复杂度。

数据结构中,我们知道队列和堆栈是两个非常重要的数据类型,一个先进先出,一个后进先出。

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

deque是为了高效实现插入和删除操作的双向链表结构,非常适合实现队列和堆栈这样的数据结构。

def testDeque():list1=[x*x for x in range(101)]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的最大长度,如果无解,就返回Nonedelist.rotate(1)#从右侧反转n步,如果n为负数,则从左侧反转delist.clear()#将deque中的元素全部删除,最后长度为0;
(3)testDefaultdict函数

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

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

def testDefaultdict():dict1= defaultdict(lambda: 'default') #Key不存在时,返回一个默认值,就可以用default,defaultdict的其他行为跟dict是完全一样的dict1["k1"]="v1"print(dict1["k2"])list2= [('yellow',11),('blue',2),('yellow',3),('blue',4),('red',5),('red',10)]dict1 = defaultdict(list)#使用list作为default_factory,很容易将一个key-value的序列转换为一个关于list的词典for k,v in list2:dict1[k].append(v)print(dict1)
(4) testOrderedDict函数

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

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

def testOrderedDict():dict1=dict([('aaa', 111), ('DDD',444),('bbb', 222), ('ccc', 333)])print(dict1)dict2 = OrderedDict([('ddd',444),('aaa', 111), ('bbb', 222), ('ccc', 333)])#OrderedDict的key会按照插入的顺序排列,不是key本身排序print(dict2)dict3 = {"banana": 33, "apple": 222, "pear": 1, "orange": 4444}# dict sorted by keydict4=OrderedDict(sorted(dict3.items(), key=lambda t: t[0]))print("dict4",dict4)# dict sorted by valuedict5=OrderedDict(sorted(dict3.items(), key=lambda t: t[1]))print("dict5",dict5)# dict sorted by length of key stringdict6 = OrderedDict(sorted(dict3.items(), key=lambda t: len(t[0])))print("dict6",dict6)print(dict6['apple'])
(5) testCounter函数
def testCounter():'''counter可以支持方便、快速的计数'''str1="abcdefgabcedergeghdjlkabcdefe" #将可迭代的字符串初始化counterstr2=Counter(str1)print(str2) #从输出的内容来看,Counter实际上也是dict的一个子类for k,v in str2.items():print(k,v)dict3 = {"banana": 33, "apple": 222, "pear": 1, "orange": 4444,"apples":2}#将dict初始化counterdict4=Counter(dict3)print(dict4)print(dict4["test"])#Counter对象类似于字典,如果某个项缺失,会返回0,而不是报出KeyError;dict5=Counter(high=9,age=33,money=-1)#将args初始化counterprint(dict5)#elements返回一个迭代器,每个元素重复的次数为它的数目,顺序是任意的顺序,如果一个元素的数目少于1,那么elements()就会忽略它;list1=list(dict5.elements())print(list1)#most_common返回一个列表,包含counter中n个最大数目的元素#,如果忽略n或者为None,most_common()将会返回counter中的所有元素,元素有着相同数目的将会以任意顺序排列;str1 = "abcdefgabcedergeghdjlkabcdefe"list1=Counter(str1).most_common(3)print(list1)if __name__ == '__main__':# testNamedTuple()# testCounter()testDefaultdict()# testDeque()# testOrderedDict()

感谢各位的阅读,以上就是“Python的一个内置模块Collections怎么使用”的内容了,经过本文的学习后,相信大家对Python的一个内置模块Collections怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Python的一个内置模块Collections怎么使用

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

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

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

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

下载Word文档
猜你喜欢
  • Python的一个内置模块Collections怎么使用
    这篇文章主要讲解了“Python的一个内置模块Collections怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的一个内置模块Collections怎么使用”吧!1、模...
    99+
    2023-07-06
  • 聊聊Python的一个内置模块Collections
    1、模块说明collections 是 Python 的一个内置模块,所谓内置模块的意思是指 Python 内部封装好的模块,无需安装即可直接使用。collections 包含了一些特殊的容器,针对 Python 内置的容器,例如:list...
    99+
    2023-05-14
    Python 函数 内置模块
  • Python内置模块Collections如何使用
    本篇内容主要讲解“Python内置模块Collections如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python内置模块Collections如何使用”吧!1、模块说明collec...
    99+
    2023-06-29
  • Python内置模块Collections的使用教程详解
    目录1、模块说明2、 实战代码(1) testNamedTuple函数(2) testDeque函数(3)testDefaultdict函数(4) testOrderedDict函数...
    99+
    2022-11-13
  • 怎么使用Python内置库collections
    这篇文章主要讲解了“怎么使用Python内置库collections”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python内置库collections”吧!Python中有很多好...
    99+
    2023-06-02
  • Python collections模块的使用技巧
    一般来讲,python的collections是用于存储数据集合(比如列表list, 字典dict, 元组tuple和集合set)的容器。这些容器内置在Python中,可以直接使用。该collections模块提供了...
    99+
    2022-06-02
    Python collections模块 Python collections的使用
  • Python的collections模块中namedtuple结构使用示例
    namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按照 index 访...
    99+
    2022-06-04
    示例 模块 结构
  • Python中Collections模块的Counter容器类使用教程
    1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict、set、list、tuple以外的一些特殊的容器类型,分别是: OrderedDict类:排序...
    99+
    2022-06-04
    容器 模块 教程
  • Nodejs中内置模块怎么使用
    小编给大家分享一下Nodejs中内置模块怎么使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!内置模块的基本使用// 01. 导包const&...
    99+
    2023-06-14
  • Node.js中的内置模块怎么用
    这篇“Node.js中的内置模块怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Node.js中的内置模块怎么用”文章吧...
    99+
    2023-06-17
  • 怎么快速打包一个新的Python模块
    今天小编给大家分享一下怎么快速打包一个新的Python模块的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。当你安装一个应用程序...
    99+
    2023-07-06
  • 怎么为Python写一个C++扩展模块
    今天小编给大家分享一下怎么为Python写一个C++扩展模块的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。源代码和往常一样,...
    99+
    2023-07-06
  • python中常用的内置模块汇总
    内置模块(一) Python内置的模块有很多,我们也已经接触了不少相关模块,接下来咱们就来做一些汇总和介绍。 内置模块有很多 & 模块中的功能也非常多,我们是没有办法注意全局...
    99+
    2022-11-13
  • python中怎么实现一个随机数模块
    python中怎么实现一个随机数模块,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。随机整数:>>> import random ...
    99+
    2023-06-17
  • nginx怎么使用内置模块配置限速限流
    这篇文章主要介绍“nginx怎么使用内置模块配置限速限流”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nginx怎么使用内置模块配置限速限流”文章能帮助大家解决问题。有时候 NGINX 面对一些特殊...
    99+
    2023-06-30
  • Python中怎么利用内置模块处理ini配置文件
    Python中怎么利用内置模块处理ini配置文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。注意:本文基于Python  3.9.0(CPython...
    99+
    2023-06-15
  • 怎么在python中使用translate模块实现一个翻译功能
    怎么在python中使用translate模块实现一个翻译功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、...
    99+
    2023-06-14
  • 怎么用python中的PywebIO模块制作一个数据大屏
    这篇文章主要介绍了怎么用python中的PywebIO模块制作一个数据大屏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用python中的PywebIO模块制作一个数据大屏文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • Python怎么使用模块
    这篇文章给大家分享的是有关Python怎么使用模块的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.1 导入模块import 模块名form 模块名import 功能名form 模块名 import *impor...
    99+
    2023-06-22
  • python的xlrd模块怎么使用
    这篇文章主要介绍“python的xlrd模块怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python的xlrd模块怎么使用”文章能帮助大家解决问题。xlrd是python语言中用于读取ex...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作