![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=1739300841-VmmmN4Nmv733PchFHQSr5l4D9Lj575Um-0-d0859b192538f1f1460870c9c0e22dcb)
由于字典是一种键值对的结构,所以可以通过将键作为索引去访问对应的值。代码如下:
【例4-20】获取字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78767.jpg?sign=1739300841-lHYY0IGqp39HI2rpHmpWJvAmWJXvCgPE-0-1d961ab76d3de5ff8e32044521dc6bba)
程序运行结果如图4-21所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38922.jpg?sign=1739300841-aJ7PRzaCOACiYwKN6KiA2x7ZDleBKjgq-0-ae7c1f79d1dcf11f4080ec554e5cd947)
图4-21 获取字典中的值
记住,使用的索引值必须是字典中有的,如果没有则会产生错误。代码如下:
【例4-21】如果字典中没有该索引值,则产生错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_78768.jpg?sign=1739300841-kYC3gzlLgp0riy4O944vuGtIWNbo1nGg-0-c4000505d2001e2f8378dd7f40598b36)
如果这样使用将会产生如图4-22所示的错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38939.jpg?sign=1739300841-kz34aTVp8Phx3bfLGZ4tUMCUcfl74Eik-0-3d6ed4712f692dc19e80b1d96785f825)
图4-22 错误的结果
4.5.2 更新字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38973.jpg?sign=1739300841-2uXv3T0qvHAfBFdCy7cquh1abQQ6JbvY-0-32aed22e47c12eae220dc1ecd2ef420c)
可以通过添加新条目或键值对来更新字典,修改现有条目或删除现有条目,如下面给出的简单实例所示。
【例4-22】更新字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P70_38948.jpg?sign=1739300841-vykBSipfQTuK6dQupowP6dLYaLfs07ni-0-61791a9144f7815b1861b29dd2d1aa5a)
程序运行结果如图4-23所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_38993.jpg?sign=1739300841-zCRDADeT6uDTtnjv6Jm3m2aceaZTne89-0-f1387f37bc5e5aa956c3aff8dafb4f18)
图4-23 运行结果
4.5.3 删除字典中的值
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39080.jpg?sign=1739300841-ZuGwKVhr1nhMR1iVE1soi1C0xAxk7hhi-0-9276c71f6280fccbbfcc58a9f06f51dd)
我们可以删除单个词典元素或清除词典的全部内容,也可以在一次操作中删除整个字典。
要显式删除整个字典,只需使用del语句。
【例4-23】删除字典中的值。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_78770.jpg?sign=1739300841-jAgkv4v51ST9X3MaoFsvn83xrwYXR1zN-0-066310c0c715d60f454de06305b78b99)
注意如果删除之后发生错误,那么字典将不存在。运行上述代码,产生如图4-24所示错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P71_39035.jpg?sign=1739300841-Q855Va4iVcoUR9Sgz38zHjbV18j51WjI-0-139bc228feac3b707b4f7b2d2855f7a2)
图4-24 错误运行结果