- Python从入门到项目实践(超值版)
- 聚慕课教育研发中心
- 719字
- 2021-03-24 19:37:33
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=1739662740-RioASQ0veqgNLtvyfgYRVjY6aA84cwZb-0-c591c4f453483aa0c235e08299d4e307)
由于字典是一种键值对的结构,所以可以通过将键作为索引去访问对应的值。代码如下:
【例4-20】获取字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78767.jpg?sign=1739662740-1AQTv2YXUOGGlquCSLybrbq3UGuRH5q3-0-e9aa1ea735ff96125b04d8944ccf9a06)
程序运行结果如图4-21所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38922.jpg?sign=1739662740-A8w5oIo2zo8FXzmf9DneGs9YKpCkc3TQ-0-7c533c2cabf9513837cac113c9229d06)
图4-21 获取字典中的值
记住,使用的索引值必须是字典中有的,如果没有则会产生错误。代码如下:
【例4-21】如果字典中没有该索引值,则产生错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78768.jpg?sign=1739662740-91nAkyyAGb8K52CqKDTVO3qQpPAXkJcy-0-ec85bd667dc1f300be7f62bec5d2c99e)
如果这样使用将会产生如图4-22所示的错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38939.jpg?sign=1739662740-tM6hwpDOe2bHhQuUBP5vmKWVeysUulPM-0-ba4911bee02db1f29c06cdb637949fb5)
图4-22 错误的结果
4.5.2 更新字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38973.jpg?sign=1739662740-Xg8Sq3tee6wsvdDVV0FlwxkAPwcX3yfa-0-53073c8f7a3fc7dff5596534aafa9324)
可以通过添加新条目或键值对来更新字典,修改现有条目或删除现有条目,如下面给出的简单实例所示。
【例4-22】更新字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38948.jpg?sign=1739662740-w7WruONkHMPlnZVuRQyskI8FHtm4aXOW-0-991d1474cb157f60a4d4408b31c1e4e1)
程序运行结果如图4-23所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_38993.jpg?sign=1739662740-tGAgA0dqqRBqwZNd9hBmmXyOyOBGAv0i-0-dae46a3379b98ba19bf8938bf5e4099f)
图4-23 运行结果
4.5.3 删除字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39080.jpg?sign=1739662740-xpT31wZCgQUZu1XnPE0ZBPmk6VTBMhKD-0-391474fd563fd1069ddef912b1adc365)
我们可以删除单个词典元素或清除词典的全部内容,也可以在一次操作中删除整个字典。
要显式删除整个字典,只需使用del语句。
【例4-23】删除字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_78770.jpg?sign=1739662740-ztcyznnoUeUqjeF7xJgVm9mdVeiWmlee-0-1625961fc7b0cae9b8d12fba63e198c0)
注意如果删除之后发生错误,那么字典将不存在。运行上述代码,产生如图4-24所示错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39035.jpg?sign=1739662740-wfozY46nA9QsHS7PapTqINIogDWj8uCM-0-3b49c657a57f294f0a4652e0070c3a76)
图4-24 错误运行结果