当前位置:首页 > 数码 > Python字典的选用之道-把握六种类型的终极指南! (python编程)

Python字典的选用之道-把握六种类型的终极指南! (python编程)

admin5个月前 (05-14)数码39
在本文中,引见了可以在不同状况下经常使用的不同类型的/target=_blankclass=infotextkey>Python字典。虽然很多Python开发者只经常使用惯例字典,但也可以在名目中尝试经常使用其余类型的Python字典。假设没有适宜的字典,可以经常使用UserDict类来创立自己的相似字典的类。

一、简介

你或者会惊讶地发现,在Python的规范库中实践上有6种不同的字典类型!在某些状况下,开发者或者不想经常使用规范的Python字典(dict),在本文中将讨论Python中其余5种不为人知的字典。

每种字典类型都是为特定需求而设计的。了解这些字典类型可以让Python开发者选用适宜其特定需求的字典,从而提高编码效率和灵敏性。

二、Python字典是什么?

在Python中,字典(dict)是一种内置的数据结构,用于以键-值对的方式存储数据汇合。你或者听过Python字典的其余称号,如查找表、映射、哈希映射或关联数组。

Python字典的一个最片面的例子就是电话簿。可以经常使用电话簿极速检索与给定姓名(键)关系联的消息(值)。Python字典准许以最高效的方式存储和检索所需的数据;这就是为什么Pythondict是这种编程言语中最罕用的数据类型。

三、Python字典的类型

大少数Python开发者通常只经常使用规范字典(dict)。幽默的是,Python还提供了其余几种内置的字典数据结构。虽然在大少数状况下,规范Python字典曾经足够经常使用,但至少了解一下其余字典类型也会对开发者有所裨益。Python的不同字典类型如下:

本文将一一引见每种类型的Python字典,并经过示例启动解释。

如前所述,Python中最经常出现的字典类型是规范类型(dict)。这种类型的Python字典可以经常使用花括号{}来轻松创立和降级。规范Python字典内置了许多函数,可以让上班愈加轻松。

规范Python字典的经常使用示例

上方是代码片段。

Python
a={'one':1,'two':2}print(a,type(a))#output:{'one':1,'two':2}<class'dict'>a.update({'three':3})#相当于a['three']=3print(a)#output:{'one':1,'two':2,'three':3}a['two']=2.1print(a['two'])#output:2.1

请留意,Python字典中的值可以是任何类型,但键必定是惟一且无法变的。普通状况下,在规范Python字典中启动查找、拔出、降级和删除操作的期间复杂度为O(1)。

3.2collections.defaultdict

Python中的另一种字典类型是defaultdict,可以从collections模块中导入。Pythondefaultdict字典用于想从字典中调用一个不存在的键时前往一个自动值。

经常使用Pythondefaultdict的示例

上方是代码片段。

fromcollectionsimportdefaultdicta=defaultdict(int)print(a['one'])#output:0a['one']+=1print(a['one'])#output:1

Python开发者在经常使用惯例字典时,通经常常使用get()方法或间接处置KeyError意外。在这种状况下,经常使用collections.defaultdict可以使开发者的用意愈加明白。

3.3collections.OrderedDict

collections.OrderedDict是Python3.1中引入的一种Python字典子类。望文生义,这种类型的Python字典可以记住键拔出的顺序。假设特意关心Python字典中键拔出的顺序,可以经常使用collections.OrderedDict。

经常使用PythonOrderedDict的示例

上方是代码片段。

fromcollectionsimportOrderedDicta=OrderedDict({'one':1,'two':2})print(a)#output:OrderedDict([('one',1),('two',2)])a['three']=3print(a)#output:OrderedDict([('one',1),('two',2),('three',3)])

collections.OrderedDict还有一个很酷的函数,可以扭转一些键的顺序。可以经常使用move_to_end将其中一个键移到Python字典的开端(last=True),或移到扫尾(last=False):

经常使用PythonOrderedDict的示例

上方是代码片段。

fromcollectionsimportOrderedDicta=OrderedDict({'one':1,'two':2,'three':3,'four':4})print(a)#output:OrderedDict([('one',1),('two',2)])a.move_to_end('one',last=True)#将'one'移至开端print(a)#output:OrderedDict([('two',2),('three',3),('four',4),('one',1)])a.move_to_end('three',last=False)#将'three'移到扫尾print(a)#output:OrderedDict([('three',3),('two',2),('four',4),('one',1)])

3.4collections.ChainMap

另一种Python字典类型是collections.ChainMap,Python的ChainMap是一种相似字典的类,可以将多个字典兼并为一个视图。这种类型的字典准许开发者在多个字典中搜查一个键,就如同它们都兼并成了一个繁多的字典。

经常使用PythonChainMap的示例

上方是代码片段。

fromcollectionsimportChainMapa={'one':1,'two':2}b={'three':3,'four':4}c={'five':5,'six':6,'three':3.1}merged=ChainMap(a,b,c)print(merged)#output:ChainMap({'one':1,'two':2},{'three':3,'four':4},{'five':5,'six':6,'three':3.1})print(merged['three'])#只前往关键字的第一次性产生结果#output:3

请留意,ChainMap只会前往要搜查的键的第一次性产生。另外还要记住,ChainMap只存储对实践对象的援用;因此,假设在任何一个原始字典中启动了更改,ChainMap也会随之降级。

经常使用PythonChainMap的示例

上方是代码片段。

fromcollectionsimportChainMapa={'one':1,'two':2}b={'three':3,'four':4}c={'five':5,'six':6,'three':3.1}merged=ChainMap(a,b,c)a['one']=1.1print(merged['one'])#output:1.1

3.5collections.Counter

Counter是Python中另一个能够计数可散列对象的字典。Python开发者通经常常使用collections.Counter来计算可迭代对象中元素的频率;例如,可以经常使用这种类型的Python字典来计算句子中经常使用的单词数量。

经常使用PythonCounter的示例

上方是代码片段。

fromcollectionsimportCountersentence="wecan'tcontrolourthoughts,butwecancontrolours"a=Counter(sentence.split(''))print(a)#output:Counter({'we':2,'control':2,'our':2,"can't":1,'thoughts':1,'but':1,'can':1,'words':1})print(a.most_common(2))#取得2个产生次数最多的元素#output:[('we',2),('control',2)]

假设须要列登程生频率最高的n个元素及其计数,从最经常出现到最不经常出现,可以在Counter对象上经常使用most_common函数。假设n为None,它将列出一切元素的计数。

3.6collections.UserDict

本文要讨论的最后一种Python字典类型是UserDict字典。UserDict也是collections模块提供的一个类。这个类设计成用作创立自定义字典类对象的基类。

当须要定义自己的相似字典的数据结构时,可以经常使用collections.UserDict。构想一个便捷的场景,须要将每个值乘以5并保留在自定义的Python字典中。经过经常使用UserDict,可以像这样成功:

经常使用PythonUserDict的示例

上方是代码片段。

fromcollectionsimportUserDictclassMyDict(UserDict):def__setitem__(self,key,value):super().__setitem__key,value*5)d=MyDict({'one':1,'two':2})print(d)#output:{'one':5,'two':10}

还可以随时笼罩其余函数,如__setitem__()、__getitem__()和__delitem__(),以进一步自定义字典的行为。

四、总结

在本文中,引见了可以在不同状况下经常使用的不同类型的Python字典。虽然很多Python开发者只经常使用惯例字典,但也可以在名目中尝试经常使用其余类型的Python字典。假设没有适宜的字典,可以经常使用UserDict类来创立自己的相似字典的类。


简单介绍Python中的几种数据类型

数据类型是每种编程语言必备的属性,只有给数据赋予明确的数据类型,计算机才能对数据进行处理运算,因此,使用正确的数据类型是十分有必要的,以下是Python编程常用的数据类型:一、数字型Python数字类型主要包括int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。 1、int(整型)在32位机器上,整数的位数是32位,取值范围是-231~231-1,即-~;在64位系统上,整数的位数为64位,取值范围为-263~263-1,即~。 2、long(长整型)Python长整型没有指定位宽,但是由于机器内存有限,使用长的长整数数值也不可能无限大。 3、float(浮点型)浮点型也就是带有小数点的数,其精度和机器有关。 4、complex(复数)Python还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。 二、字符串在Python中,加了引号的字符都被认为是字符串,其声明有三种方式,分别是:单引号、双引号和三引号;Python中的字符串有两种数据类型,分别是str类型和unicode类型,str类型采用的ASCII编码,无法表示中文,unicode类型采用unicode编码,能够表示任意字符,包括中文和其他语言。 三、布尔型和其他编程语言一样,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。 四、列表列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型,可对集合进行创建、查找、切片、增加、修改、删除、循环和排序操作。 五、元组元组和列表一样,也是一种序列,与列表不同的是,元组是不可修改的,元组用”()”标识,内部元素用逗号隔开。 六、字典字典是一种键值对的集合,是除列表以外Python之中最灵活的内置数据结构类型,列表是有序的对象集合,字典是无序的对象集合。 七、集合集合是一个无序的、不重复的数据组合,它的主要作用有两个,分别是去重和关系测试。

python的内置字典数据类型为?

python中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)字典只是其中之一

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Python

“Python字典的选用之道-把握六种类型的终极指南! (python编程)” 的相关文章

Python中的LEGB规则 (python怎样打开)

Python中的LEGB规则 (python怎样打开)

Python 中的 LEGB 规则决定了变量和函数的作用域解析顺序。它代表了四个作用域层级: 局部作用域 闭包函数外的函数 全局作用域 内置作用域...

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

近年来,Python 持续火爆,越来越多的人开始入门学习 Python。RealPython 作为最受好评的 Python 学习网站,拥有超百万的浏览量,以下是 RealPython 的开发者给...

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

/target=_blankclass=infotextkey>Python文件的读写操作时,有很多须要思考的细节,这包含文件关上形式、读取和写入数据的方法、意外处置等。 在本文中,...

Python中的Random模块-摸索随机性的神奇环球 (python编程)

Python中的Random模块-摸索随机性的神奇环球 (python编程)

随机性在计算机编程和数据迷信中表演着至关关键的角色。/target=_blankclass=infotextkey>Python中的random模块提供了丰盛的工具和函数,协助咱们生成随机数...

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

/target=_blankclass=infotextkey>Python为啥这么火,这么多人学,就是由于繁难好学,性能弱小,整个社区十分生动,资料很多。而且这言语触及了方方面面,比如智能...

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

主从模式 主从模式是一种简单的分布式爬虫架构,其中一台主机作为控制节点,负责管理所有运行爬虫的从机。 主节点负责向从机分配任务,并接收新生成的任务。从机只需要从主节点接收任务,并把新生...

轻松把握多线程和多进程-Python编程进阶 (多线是什么意思)

轻松把握多线程和多进程-Python编程进阶 (多线是什么意思)

1、简介 咱们将讨论如何应用/target=_blankclass=infotextkey>Python口头多线程和多进程义务。它们提供了在单个进程或多个进程之间口头并发操作的方法。并...

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

这个简单的教程将指导你如何在 Python 中使用 Tkinter 轻松制作一个全功能的 GUI 计算器。 7 8...