![Python从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/265/27563265/b_27563265.jpg)
4.5 字典的使用
Python中的字典是一个无序的数据值集合,用于存储数据值,如地图。与其他只保存单个值的数据类型不同,字典保存键值对。字典中提供了键值以使其更加优化。字典中的每个键值对用冒号“:”分隔,而每个键用“逗号”分隔。
Python中的词典与现实世界中的词典类似。Dictionary的键必须是唯一的,并且是不可变的数据类型,如字符串、整数和元组,但键值可以重复并且可以是任何类型。
注意一下,字典中的键不允许多态性。在Python中,可以通过将元素序列放在cur {}括号内来创建一个Dictionary,用“逗号”分隔。Dictionary包含一对值,一个是Key,另一个对应的元素是Value。字典中的值可以是任何数据类型,可以赋值,而键不能重复,必须是不可变的。
字典也可以通过内置函数dict()创建,只需放置大括号{}就可以创建一个空字典。
注意一下,字典键区分大小写,名称相同但Key的不同情况将被明确区分。
4.5.1 获取字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38967.jpg?sign=1739558381-vS6CrEmBcHRysQVueXDttShrmWRU7pjs-0-19f4ed4ce2397e06783a02c35d2a2805)
由于字典是一种键值对的结构,所以可以通过将键作为索引去访问对应的值。代码如下:
【例4-20】获取字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78767.jpg?sign=1739558381-GPkOiVwFDaEK71PWi2krwQk3FO8v9Uz5-0-dc315252d06ccd734cdccfb7e9eface5)
程序运行结果如图4-21所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38922.jpg?sign=1739558381-oqMpVxvVy8VErG2IsgRZDcvj0XkDgj7y-0-38db5a9d61565a65d56dd4651dccde9e)
图4-21 获取字典中的值
记住,使用的索引值必须是字典中有的,如果没有则会产生错误。代码如下:
【例4-21】如果字典中没有该索引值,则产生错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78768.jpg?sign=1739558381-iFcNMV6JSeRSGgNfSrUzn6yoEoU89ehn-0-3e402b8df6c8059222098cc1a38ed933)
如果这样使用将会产生如图4-22所示的错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38939.jpg?sign=1739558381-DPJNCmFm9u8XLyxzBTsJJ7t2Z9pWMMnD-0-cf0f8dd9b67b3a04a0dd485541de1c20)
图4-22 错误的结果
4.5.2 更新字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38973.jpg?sign=1739558381-85LtricIvx15gnFIUgblhBtaZrdyvAKT-0-1b014e2f54767f98d877d1f9014e9021)
可以通过添加新条目或键值对来更新字典,修改现有条目或删除现有条目,如下面给出的简单实例所示。
【例4-22】更新字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38948.jpg?sign=1739558381-CoYfI5gSDDkZKdyOBOROaSlMk2vAnEq5-0-503b1409e45571604b2bee9f395d38d2)
程序运行结果如图4-23所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_38993.jpg?sign=1739558381-N8xt97QLrs9hLds8NVQm7VvEYBYtB8Tj-0-1f2d6ebcdb1da59941faca710ee10e58)
图4-23 运行结果
4.5.3 删除字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39080.jpg?sign=1739558381-v4qYnp6v0qefFjmU73PK2PgunYTZNzCT-0-2aa9ecbb20f3ac0bdb7619190107f4c8)
我们可以删除单个词典元素或清除词典的全部内容,也可以在一次操作中删除整个字典。
要显式删除整个字典,只需使用del语句。
【例4-23】删除字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_78770.jpg?sign=1739558381-NAUhFWix78ZYJHxZuC0DH80djIGe1Lvh-0-5136edba4d0d5f090fcb6aaad336f27d)
注意如果删除之后发生错误,那么字典将不存在。运行上述代码,产生如图4-24所示错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39035.jpg?sign=1739558381-XQ2qGkpBXGlHZExBCsnUZuRP5Our68hA-0-a532503a37a7c478d351537ea49ce0ed)
图4-24 错误运行结果