
2.9 字典
在Python中,字典是一系列键-值对。每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表和字典。总之,字典可以存储任何类型对象。如下所示为一个学生分数的字典。

在Python中,字典用放在花括号{}中的一系列键-值对表示。每个键-值对之间用逗号(,)分隔。
注意:
在字典中键是唯一的,不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。键必须是不可变的,所以可以用数字、字符串或元组充当,但用列表就不行。
2.9.1 字典的创建
1.创建空元组
在Python中,可以直接创建空的字典,如下所示的dictionary为一个空字典。

也可以通过dict()函数来创建一个空字典,如下所示。

2.通过映射函数创建字典
通过映射函数创建字典的方法如下。

zip()函数用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。其中,list1用于指定要生成字典的键,list2用于指定要生成字典的值。如果list1和list2长度不同,则与最短的列表长度相同。如下所示为通过映射函数创建的字典。

程序执行后的输出结果如下。

可以看到创建了一个字典。
3.通过给定的关键字参数创建字典
通过给定的关键字参数创建字典的语法如下。

key1、key2、keyn等表示参数名,必须是唯一的。value1、value2、valuen等表示参数值,可以是任何数据类型。
2.9.2 通过键值访问字典
要获取字典中与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示。

上述程序运行后,会直接输出480。
案例16:中考成绩查询系统
在IDLE中创建一个名为“中考成绩查询.py”的文件,在文件中创建一个学生姓名与成绩的字典,然后让用户输入学生姓名,再获取字典中学生姓名对应的值,然后输出即可,代码如下。

运行结果如下。

2.9.3 添加、修改和删除字典
1.向字典中添加键-值对
要在字典运行随时在其中添加键-值对,添加键-值的方法如下所示。

指定字典名、键(注意使用方括号)和相关联的值(注意使用“=”)。
上述程序运行后的结果如下所示。

2.修改字典中的值
要修改字典中的值,可以依次指定字典名、用方括号括起的键以及与该键相关联的值。如下所示。

运行程序,输出结果。字典中的张三的分数被修改成了565,如下所示。

3.删除字典中的键-值对
对于字典中不需要的元素,可以使用del语句来删除,如下所示。

运行程序,输出的结果。字典中的张三和520被删除,如下所示。

4.删除整个字典
可以使用del命令删除整个字典,如下所示。

5.通过clear()删除字典的元素
如果想删除字典中的元素,可以使用clear()函数实现,如下所示。

2.9.4 遍历字典

字典是以键-值对的形式存储数据的,所以需要通过这些键-值对进行获取。Python提供了遍历字典的方法,通过遍历可以获取字典中的全部键-值对。
使用字典对象的items()函数可以获取字典键-值对的元组列表,具体语法如下。

1.分别获取键和值
要想获得具体的键-值对,可以通过for循环遍历该元组列表。如下所示为遍历fractions字典,输出键和值。

遍历字典中所有的键-值对时,需要定义两个变量(此例中定义了x和y),用于存储键和值。并使用字典名和items()。上述代码运行后输出的结果如下所示。

2.只获取键
只遍历字典中的所有键时,需要定义一个变量,并使用字典名和keys(),如下所示。

上述代码运行后输出的结果如下所示。

3.只获取值
只遍历字典中的所有值时,需要定义一个变量,并使用字典名和values(),如下所示。

上述代码运行后输出的结果如下所示。

案例17:打印客户名称和电话
在IDLE中创建一个名为“客户资料.py”的文件,在文件中创建一个客户资料的字典,然后遍历字典,输出客户名称和电话,代码如下。

运行结果如下。
