上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中可以通过关键字进行访问,一般格式为:
字典[关键字]
例如:
>>>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'] #删除score关键字 >>>dict_3 {'name': 'LiHua', 'age':18} >>>dict_3.clear() #清除字典内容 >>>dict_3 {}
4.其他操作方法
在Python中,字典实际上也是对象,因此,Python定义了很多比较常用的字典操作方法,具体如表2-3所示。
表2-3 字典常用方法
2.6.3 字典的遍历
对字典进行遍历一般会使用for循环,但建议在访问之前使用in或not in判断字典的关键字是否存在。字典的遍历操作如下所示。
>>>dict_4={'name': 'LiHua', 'score':95 } #创建一个字典 >>>forkeyindict_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(ite)
('name', 'LiHua')
('score', 95)