目录
字典的主要特征
字典的定义
创建一个简单的字典
添加键-值对
创立空字典
修改字典中的值
删除键-值对
字典的主要特征
·通过键读取而不是通过索引读取。
·字典有的时候也称为关联数组或散列表。他是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。
·字典是任意对象的无序集合。
·字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定顺序。
·字典是可变的,并且可以任意嵌套。
字典可以在原处增长或缩短(不需要生成一份拷贝)而且它支持任意深度的嵌套(它的值既可以是列表也可以是其他的字典)
·字典中的键必须是唯一的。
并且在字典中不允许同一个键出现两次,如果出现两次,那么后一个值就会被记住。
·字典中的键必须不可变。
字典中的键是不可变的,因此可以使用数字,字符串或元组,但不能使用列表。
字典的定义
定义字典时,每个元素都包含两个部分‘键’和‘值’。以电影名和豆瓣评分为例,键为电影名称,值为电影在豆瓣的评分。
值 | 环太平洋 | 钢铁侠 | 流浪地球 |
键 | 9.0 | 8.8 | 9.1 |
在创建字典时,在‘键’和‘值’之间需要冒号分隔,相邻两元素使用逗号分隔,所有元素放在一对大括号‘{}’中。
dictionary = {'key1':'value1','key2':'value2',·····‘keyn’:'valuen'}
·参数说明
·dictionary:表示字典名称。
·key1,key2····keyn : 表示元素的键,必须是唯一的,并且不可变的,可以是字符串,数字或者元组。
`value1,value2···valuen : 表示元素的值,可以是任何数据,不是必须是唯一。
创建一个简单的字典
例如创建一个王先生的信息的目录
message_wang = {'age':'15','gender':'man','birthday':'2006'}
print(message_wang['age'])
print(message_wang['gender'])
print(message_wang['birthday'])
字典message_wang存储了wang先生的年龄,性别,生日等个人信息。使用三条print语句来访问并打印这些信息,如下代码段所示。
15
man
2006
添加键-值对
字典是一种动态结构,可以随时在其中添加键-值对。如果要添加键-值对,需要依次指定字典名,并且使用方括号括起相关联的键和值。字典支持使用update()方法或指定的键添加或修改元素。
在字典message_wang中添加两项信息:分别为王先生的爱好和王先生的身高。
message_wang = {'age':'15','gender':'man','birthday':'2006'}
print(message_wang)
message_wang.update(hobby = 'swim')
message_wang.update(stature = '1.80')
print(message_wang)
首先我们定义了前面一直使用的字典,然后打印这个字典 ,查看字典输出的键值,我们在字典中新增加了连个键-值对,其中的第一个键为‘hobby’而值为‘swim’。第二个键为‘stature’值为‘1,85’,打印修改后的字典将会看到这两个新增加的键-值对。
{'age': '15', 'gender': 'man', 'birthday': '2006'}
{'age': '15', 'gender': 'man', 'birthday': '2006', 'hobby': 'swim', 'stature': '1.85'}
这个字典最终包含5个键-值对,其中原来3个分别为wang先生的年龄,性别,生日,而新增的键-值对指定王先生的爱好和身高。需要注意的是:键-值对的排列顺序与添加顺序不同,Pyhon不关心键-值的添加顺序,而只关心键和值之间的关联关系。
创立空字典
同列表元组一样,也可以建立空字典,在Python中,可以使用以下两种方法来创立空字典。
方法一:dictionary = {}
方法二:dictionary = dict()
Python的dict()方法除了可以创建一个空字典外,还可以通过已有的数据快速创建字典。
修改字典中的值
如果要修改字典中的值,可依次指定字典名,以及使用方括号括起的键以及该键相关联的新值。
假设王先生的爱好从游泳变成跑步,需要将原键-值游泳改成跑步。
message_wang = {'hobby':'swim'}
print('Mr wang favourite hobby is ' + message_wang['hobby'] + '.')
message_wang['hobby'] = 'run'
print('Mr wang favourite hobby is ' + message_wang['hobby'] + '.')
我们首先定义了一个表示王先生message_wang的字典,其中包含王先生的爱好。接下来我们将与键‘hobby’相关联的值改为‘run’输出表明王先生的爱好确实从游泳变成了跑步。
Mr wang favourite hobby is swim.
Mr wang favourite hobby is run.
删除键-值对
对于字典中一些需要删除的信息,可以使用del语句将相应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
message_wang = {'age':'15','gender':'man'}
print(message_wang)
del message_wang['gender']
print(message_wang)
{'age': '15', 'gender': 'man'}
{'age': '15'}