首页 > 编程语言 >Python字典六种类型概述

Python字典六种类型概述

时间:2023-11-18 16:33:14浏览次数:35  
标签:Python 六种 dict 使用 类型 collections 字典

1. 引言

看到这个标题,你可能会觉得奇怪,事实上在Python的标准库中共有6种字典类型!在某些情形下,你可能会觉得标准的Python字典dict,并不能完全符合你的需求。在本文中,我们将讨论Python中其他5个鲜为人知的词典及其特性。

闲话少说,我们直接开始吧!

2. 字典的定义

在Python中,Dictionary(dict)是一种内置的数据结构,用于以键值对的形式存储数据集合。当然,你可能也听到过Python字典的其他名称,如查找表、映射、哈希映射等。

Python字典最常用的例子之一是电话簿。我们可以使用电话簿快速检索与给名字(key)相关的信息(value)。Python Dictionaries允许大家以最有效的方式存储和检索所需的数据;这就是为什么Python种的dict是这种编程语言中最常用的数据类型之一。

3. 常用的字典类型

大多数Python开发人员通常只使用标准字典(dict)。有趣的是,Python提供了几个其他内置的字典数据结构。尽管在大多数情况下,常规的Python字典就足够了,但至少了解其他字典类型对于大家来说也是有益的,以防它们有朝一日派上用场。不同类型的Python词典归纳如下: dict、collections.defaultdict、collections.OrderedDict、collections.ChainMap、collections.Counter、collections.UserDict。

接下来我们逐一介绍以上字典及其经常应用的场景。

4. dict

正如上文提到的,Python中最常见的字典类型是标准dict类型。这种类型的Python字典可以很容易地与大括号{}一起使用。标准的Python字典附带了许多内置函数,使大家的日常编码更加轻松。

Python字典六种类型概述_Python

请注意,Python字典中的值Value可以是任何类型,但键Key必须是唯一的和不可变的。一般情况,在标准Python字典中查找、插入、更新和删除操作的时间复杂度为O(1)。

5. collections.defaultdict

Python中字典的另一种类型是defaultdict,它可以从集合中导入。当你希望在从字典中调用不存在的键返回默认值时,推荐使用Python中的 defaultdict

Python字典六种类型概述_Python_02

Python开发人员在使用常规字典时通常使用get()方法,或者显式处理KeyError异常。在这种情况下,使用collections.defaultdict可以更加简洁。

6. collections.OrderedDict

collections.OrderdDict是在Python 3.1中引入的一个Python字典子类。正如大家可能从名称中猜到的那样,这种类型的Python字典可以记住键插入的顺序。如果你在实际应用中特别关心Python字典中键插入的顺序,则可以使用这种类型的字典OrderdDict

Python字典六种类型概述_Python_03

collections.OrderdDict还有一个很酷的功能,可以更改某些键的顺序。这里大家可以使用move_to_end将其中一个键移动到Python字典的末尾(last=True)或开头(last=False),样例如下:

Python字典六种类型概述_Python_04

7. collections.ChainMap

Python字典的另一种类型是ChainMap。Python中的 ChainMap是一个类似字典的类,它可以将多个字典组合到一个视图中。Python中的这种类型的字典允许大家在多个字典中搜索关键字,就好像它们都合并到一个字典中一样。

Python字典六种类型概述_Python_05

请注意,ChainMap将只返回大家正在搜索的关键字的首次出现。另外,请记住ChainMap只存储对实际对象的引用;因此,如果大家更改任何原始词典,ChainMap也将更新。

Python字典六种类型概述_Python_06

8. collections.Counter

Counter是Python字典中另一个能够计算可散列对象的字典。Python开发人员通常使用集合。Counter,主要用于计算可迭代对象中元素的频率;例如,大家可以使用这种类型的Python字典来计算一个句子中使用的单词数量。

Python字典六种类型概述_Python_07

如果需要列出n个最常见的元素及其从最常见到最少见的计数,可以在Counter对象上使用most_common函数。如果n为None,则它将列出所有元素的计数。

9. collections.UserDict

我们要讨论的最后一种Python字典类型的是UserDict。它也是collections模块提供的一个类。这个类被设计为用作基类来创建自定义的类似字典的对象。

想象一个简单的场景,如果你需要将每个值乘以5,同时将它们保存在自定义Python字典中。通过使用UserDict,您可以这样做:

Python字典六种类型概述_Python_08

我们也可以通过重写其他函数,如__setitem__()、getitem()和__delitem__(),来进一步自定义字典的行为。

10. 总结

在本文中,我们介绍了可以在各种情况下使用的不同类型的Python字典。尽管许多Python开发人员都使用常规字典,但是在实际项目中始终可以自由使用其他类型的Python字典。如果没有一个字典适合您,您可以使用UserDict类来创建自己特有的字典。

标签:Python,六种,dict,使用,类型,collections,字典
From: https://blog.51cto.com/u_15506603/8463386

相关文章

  • 简单的用Python实现一下JS逆向解密,采集空气质量数据
    最近天气降温厉害,咱们用Python来分析一下空气质量如何~话不多说,我们直接开始上手。环境以及模块环境使用Python3.8Pycharmnodejs模块使用importrequestsimportexecjsimportjsonrequests和execjs都是第三方模块,需要手动安装,直接pipinstall......
  • Python全栈开发从入门到入土【新版】
    【Python初级】【一】计算机基础【补充】计算机五大组成部分【二】编程语言和Python语言介绍【三】Python解释器和Pycharm的安装【补充】Python相关补充【补充】Pycharm相关补充【四】Python语法入门之常量和变量【五】Python基础之垃圾回收机制【六】Python基础之基本......
  • 【3.1】Python相关补充
    【一】PIP换源【1】问题描述在使用Python时,我们经常需要用到pip安装第三方包。但是,在某些情况下,由于网络速度慢或者其他各种原因,pipinstall会非常慢,甚至可能无法完成。为了解决这个问题,我们提供以下几种方法。【2】永久更换pip源一般来说,我们使用的是默认的pip源,这个源......
  • 【8.0】Python基础之基本运算符
    【一】参考网站参考网站(菜鸟教程):https://www.runoob.com/python/python-operators.html【二】算数运算符python支持的算数运算符与数学上计算的符号使用是一致的我们以x=9,y=2为例来依次介绍它们【1】加法运算符+x=9y=2result=x+yprint(result)#输出:1......
  • 【7.0】Python基础之程序与用户交互
    【一】什么是与用户交互交互的本质就是输入、输出用户交互就是人往计算机中input/输入数据,计算机print/输出结果【二】为什么要与用户交互为了让计算机能够像人一样与用户沟通交流过去我们去银行取钱,用户需要把帐号密码告诉柜员而现在,柜员被ATM机取代ATM机就是一台......
  • 【11.0】Python基础之可变和不可变数据类型
    【一】堆【0】引入https://www.hello-algo.com/chapter_heap/堆就像是山川的峰峦,它们层叠起伏、形态各异。每一座山峰都有其高低之分,而最高的山峰总是最先映入眼帘。【1】堆的介绍「堆heap」是一种满足特定条件的完全二叉树,主要可分为图8-1所示的两种类型。......
  • 【10.0】Python基础之数据类型的内置方法
    【一】数据类型内置方法介绍数据类型是用来记录事物状态的,而事物的状态是不断变化的(如:一个人年龄的增长(操作int类型)单个人名的修改(操作str类型),学生列表中增加学生(操作list类型)等),这意味着我们在开发程序时需要频繁对数据进行操作为了提升我们的开发效率python针对这些常用......
  • 【9.0】Python基础之流程控制语句
    【一】流程控制语句介绍程序是由语句构成,而流程控制语句是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。其流程控制方式有顺序结构分支结构循环结构这里最简单......
  • Python复制表格文件的指定行:不同的行复制不同次数
      本文介绍基于Python语言,读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,而不符合要求的那一行则不复制;并将所得结果保存为新的Excel表格文件的方法。  这里需要说明,在我们之前的文章Python自动复制表格文件中指定的数据行的方法中,也介绍过实现类......
  • python 根据绝对路径关闭进程
    importosimportpsutil#如果未知路径且写入了配置环境#os.system("taskkill/f/imexcel.exe&taskkill/f/imwps.exe")#cmdtaskkill直接输入不需加双引号#cmdtaskkill无法根据绝对路径关闭程序无论有没有双引号(无效查询或没有找到进程)#True,False,N......