- 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=1739594827-q07SoHoMmOEzg7qWb4nlfoPWVkmIeV3Z-0-ca7414c6d747e3a5fe8252130bc0dc2d)
由于字典是一种键值对的结构,所以可以通过将键作为索引去访问对应的值。代码如下:
【例4-20】获取字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78767.jpg?sign=1739594827-hJmTXTGvBX9cQ1O3gk7smPaQwzp2QfGj-0-e5e33f4918b36aae047d847ae28855df)
程序运行结果如图4-21所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38922.jpg?sign=1739594827-jO9Mjg8jnrI4nlpphmAM3Jm4D57edCd6-0-98080dea91c6ba9e31cfd8a40190e0bf)
图4-21 获取字典中的值
记住,使用的索引值必须是字典中有的,如果没有则会产生错误。代码如下:
【例4-21】如果字典中没有该索引值,则产生错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78768.jpg?sign=1739594827-edgaOvuV2qJcuvrIdVDmB4O09u8wzEcN-0-fe6829959ae178037cf30f0c02dfd186)
如果这样使用将会产生如图4-22所示的错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38939.jpg?sign=1739594827-VRr31RhpW0w4I8zzBRPrvGuJYhOWXFuX-0-3a6ed1c75930680b52c2f9d97dea1b35)
图4-22 错误的结果
4.5.2 更新字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38973.jpg?sign=1739594827-je5uy700kk7tySiCXwowdAJIiR2P74tM-0-55c33e630090d394ce3e1a0baedcaa87)
可以通过添加新条目或键值对来更新字典,修改现有条目或删除现有条目,如下面给出的简单实例所示。
【例4-22】更新字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38948.jpg?sign=1739594827-CcD0fEiDCXGJ5hmNKTslyDPGFnE34AQd-0-6ccdcfdb3c9263a113d07473d2e7c294)
程序运行结果如图4-23所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_38993.jpg?sign=1739594827-L0dikte4dDvmcFCzUNDwn5Oj74vXOnKQ-0-d20157c57aad85855fd3830f00796457)
图4-23 运行结果
4.5.3 删除字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39080.jpg?sign=1739594827-EqqkW9seG6pNdFzZgEK8KpAgADr0HK2l-0-c04999aec29189c0cd6643c6f7dca04c)
我们可以删除单个词典元素或清除词典的全部内容,也可以在一次操作中删除整个字典。
要显式删除整个字典,只需使用del语句。
【例4-23】删除字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_78770.jpg?sign=1739594827-MGgT6v9CPHAZ34Ro567ql7MHCtCrfjFV-0-4ca1cc3474ed78c6849674d33c957c1c)
注意如果删除之后发生错误,那么字典将不存在。运行上述代码,产生如图4-24所示错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39035.jpg?sign=1739594827-EQ4n7xyxOzoHJnI9m9EfDf4shxy40UVd-0-069bb3a46f97105698628fbaafbfb7f6)
图4-24 错误运行结果