字典是一种在Python中被称为映射的一种基本的数据结构。它通过键值对的方式存储了数据与数据之间的对应关系。
字典的创建方式较为简单,将若干条目放在一对“{}”中即为字典,其中每个条目由键和值组成,创建字典的过程就是创建键与值之间的关联的过程。键值对的语法格式如下:
{ 键1 : 值1, 键2 : 值2, …… }
例如:
myDict={"汉堡":15,"鸡翅":10,"薯条":6}
myDict就是创建的字典,“汉堡”:15、“鸡翅”:10,“薯条”:6就是该字典中的三个条目,不同条目之间用“,”进行区分,在条目中,“汉堡”、“鸡翅”、"薯条"为键,15、10、6分别为三个键所关联的值,键和值之间用“:”做分隔。
在字典中键和值之间是一一对应的关系,因此python也支持将一组双元素序列转换成字典,使用的是内置函数dict()。
在上图中,items为用列表存储的一组双元素元组,在使用dict()函数对其进行转换后赋值给变量dic,dic即为字典,其键和值分别对应了双元素元组中的两个元素。
使用这一方式进行字典的创建需要注意的是:不管是元组还是列表,其中一定只能包含两个元素。
字典的几个特性:
字典和前面的列表、元组不同,其存储的条目是无序的,因为字典中也没有索引这一概念,即无法通过索引访问条目,若想访问字典中的条目,则需要通过键进行,字典中的键类似“索引”,对字典进行访问即为通过键访问字典的条目。其语法格式如下:
字典名[键]
当键存在于字典当中,会返回该键对应的值,若不存在,则会报错。
当条目中的值为列表、元组这样的序列时,通过上述方式获得对应的值后可利用索引进一步访问其子元素。
字典主要存放键和值之间的映射关系,其中的单个元素为条目(键值对),因此对字典的基本操作主要涉及到对键和值的操作,主要为条目的添加与修改、条目的删除以及条目的查询。
前面有介绍到字典中的条目放在一对“{}”中,因此定义空字典的过程就是将一对“{}”赋给字典变量,但需要在该变量中添加新的条目,可通过下面的语法格式进行添加:
字典[键]=值
字典中的键是不可修改的,因此对于条目的修改,主要是针对条目中的值进行修改,其修改语法格式和添加条目的语法格式一致,使用该语句进行条目修改的前提条件是该键在字典中存在。
综上所述,当“字典[键]=值”中的键在字典中不存在时,该语句可以字典中添加一个新的条目,当键在字典中存在时,该语句会对键所对应的值进行修改。
字典的删除操作主要有两种,一种是删除字典中的条目,一种是删除整个字典。
del命令
del命令即可用来删除条目,也可用来删除整个字典,其语法格式如下:
#删除条目
del 字典[键]
# 删除字典
del 字典
pop()方法
pop()方法用于删除指定键所对应的条目,同时返回该条目中的值,如果指定键在字典中不存在,则返回默认值。其语法格式如下:
字典.pop(键,默认值)
当不确定指定的键在字典中是否存在时,需要给出默认值,否则当字典中不在该键时会报错,因此括号中的参数至少要有键。
popitem()方法
popitem()方法用于随机删除字典中的条目,同时返回整个条目内容,python3.6后的版本,使用该方法默认返回最后一个添加进字典的条目,其语法格式如下:
字典.popitem()
clear()方法
clear()方法用于一次性清空字典中的所有条目,其语法格式如下:
字典.clear()
条目的查询包括两种,判断条目在字典中是否存在以及获取条目对应的值,判断条目是否存在使用“in”语句进行判断,获取对应的值则使用get()方法。
in语句
使用in运算符判断键所对应的条目在字典中是否存在,存在则返回True,不存在则返回False,其语法格式如下:
键 in 字典
get()方法
get()方法根据指定的键访问呢字典并获取字典中对应条目的值,若该键在字典中不存在,则返回默认值,若未指定默认值,则不会返回任何结果,其语法格式如下:
字典.get(键,默认值)