
4.5 字典的使用
Python中的字典是一个无序的数据值集合,用于存储数据值,如地图。与其他只保存单个值的数据类型不同,字典保存键值对。字典中提供了键值以使其更加优化。字典中的每个键值对用冒号“:”分隔,而每个键用“逗号”分隔。
Python中的词典与现实世界中的词典类似。Dictionary的键必须是唯一的,并且是不可变的数据类型,如字符串、整数和元组,但键值可以重复并且可以是任何类型。
注意一下,字典中的键不允许多态性。在Python中,可以通过将元素序列放在cur {}括号内来创建一个Dictionary,用“逗号”分隔。Dictionary包含一对值,一个是Key,另一个对应的元素是Value。字典中的值可以是任何数据类型,可以赋值,而键不能重复,必须是不可变的。
字典也可以通过内置函数dict()创建,只需放置大括号{}就可以创建一个空字典。
注意一下,字典键区分大小写,名称相同但Key的不同情况将被明确区分。
4.5.1 获取字典中的值

由于字典是一种键值对的结构,所以可以通过将键作为索引去访问对应的值。代码如下:
【例4-20】获取字典中的值。

程序运行结果如图4-21所示。

图4-21 获取字典中的值
记住,使用的索引值必须是字典中有的,如果没有则会产生错误。代码如下:
【例4-21】如果字典中没有该索引值,则产生错误。

如果这样使用将会产生如图4-22所示的错误。

图4-22 错误的结果
4.5.2 更新字典中的值

可以通过添加新条目或键值对来更新字典,修改现有条目或删除现有条目,如下面给出的简单实例所示。
【例4-22】更新字典中的值。

程序运行结果如图4-23所示。

图4-23 运行结果
4.5.3 删除字典中的值

我们可以删除单个词典元素或清除词典的全部内容,也可以在一次操作中删除整个字典。
要显式删除整个字典,只需使用del语句。
【例4-23】删除字典中的值。

注意如果删除之后发生错误,那么字典将不存在。运行上述代码,产生如图4-24所示错误。

图4-24 错误运行结果