上QQ阅读APP看书,第一时间看更新
2.6 字典
本节将介绍能够将相关信息关联起来的Python字典。主要介绍如何访问、修改字典中的信息。鉴于字典可存储的信息量几乎不受限制,因此我们会演示如何遍历字典中的数据。
理解字典后,就能够更准确地为各种真实物体建模。例如,可以创建一个表示人的字典,然后想在其中存储多少信息就能存储多少信息。字典可存储姓名、年龄、地址、职业,以及要描述的任何信息。
2.6.1 字典的创建
字典就是用大括号括起来的“关键字:值”对的集合体,每一个“关键字:值”对被称为字典的元素。
创建字典的一般格式为:
字典名={[关键字1:值1[,关键字2:值2,······,关键字n:值n]]}
其中,关键字与值之间用“:”分隔,元素与元素之间用逗号分隔。字典中关键字必须是唯一的,值可以不唯一。字典的元素可以是列表、元组和字典。
>>>d1 = {'name':{ 'first': 'Li', 'last': 'Hua'},'age':18} >>>d1 {'name':{ 'first': 'Li', 'last': 'Hua'},'age':18} >>>d2 = {'name': 'LiHua', 'score':[80,65,98]} >>>d2 {'name': 'LiHua', 'score':[80,65,98]} >>>d3={'name': 'LiHua', 'score':(80,65,98)} >>>d3 {'name': 'LiHua', 'score':(80,65,98)}
当“关键字:值”对都省略时,会创建一个空的字典。例如:
>>>d4 = {} >>>d5={'name': 'LiHua', 'age': '18'} >>>d4,d5 {{},{'name': 'LiHua', 'age': '18'}}
另外,在Python中还有一种创建字典的方法,就是dict函数法。
>>>d6=dict() # 使用dict创建一个空的字典 >>>d6 {} >>>d7=dict((['LiHua',100],['LiMing',95])) # 使用dict和元组创建一个字典 >>>d7 {'LiHua':100, 'LiMing': 95} >>>d8=([['LiHua',100],['LiMing',95]]) # 使用dict和列表创建一个字典 >>>d8 {'LiHua':100, 'LiMing': 95}
2.6.2 字典的常规操作
在Python中定义了很多字典的操作方式,下面介绍其中几个比较主要的方式,更多的字典操作可以从网络上查询。
1.访问
在Python中可以通过关键字进行访问,一般格式为:
字典[关键字]
当然,如果字典中没有这个关键字,Python会报告一个错误。
>>>dict_1={'name': 'LiHua', 'score':95} # 以字典中的关键字为索引 >>>dict_1['score'] 95
2.更新
在Python中更新字典的格式为:
字典名[关键字]=值
如果在字典中已经存在这个关键字,则修改它,如果不存在,则向字典中添加一个这样的新元素。
>>>dict_2={'name': 'LiHua', 'score':95} # 创建一个字典 >>>dict_2['score'] = 85 # 字典中已存在‘score’关键字,修改 >>>dict_2 {'name': 'LiHua', 'score':85} >>>dict_2['age'] = 18 # 字典中不存在‘age’关键字,添加 >>>dict_2 {'name': 'LiHua', 'score':85, 'age':18}
3.删除
在Python中删除字典有很多方法,这里介绍del函数和clear方法。其中,del的一般格式如下:
del字典名[关键字] # 删除关键字对应的元素 del字典名 # 删除整个字典
字典的删除如下:
>>>dict_3={'name': 'LiHua', 'score':95, 'age':18} # 创建一个字典 >>>del dict_3['score'] # 用del函数删除score关键字 >>>dict_3 {'name': 'LiHua', 'age':18} >>>dict_3.clear() # 用clear方法删除字典内容 >>>dict_3 {}
4.其他操作方法
在Python中,字典实际上也是对象,因此,Python定义了很多比较实用的操作方法,具体如表2-3所示。
表2-3 字典常用方法
2.6.3 字典的遍历
字典的遍历一般使用for循环,但建议在遍历之前使用in或not in判断一下字典的关键字是否存在。字典的遍历操作如下:
>>>dict_4={'name': 'LiHua', 'score':95 } # 创建一个字典 >>>for key in dict_4.keys(): # 遍历字典的关键字 >>>print(key,dict_4[key]) name LiHua score 95 >>>for value in dict_4.values(): # 遍历字典的值 >>>print(value) LiHua 95 >>>for item in dict_4.items(): # 遍历字典的(关键字,值) >>>print(item) ('name', 'LiHua') ('score', 95)