第6章 字 典

6.1 一个简单的字典
1.python中的字典相当于java的map,分别为key和value

6.2 使用字典

1.字典格式为:键-值,类似于列表,但不是列表
2.相当于通过访问键去获取值

6.2.1 访问字典中的值

6.2.2 添加键—值对
1.字典和列表一样都是动态的,也就是说可以随时改变字典大小
2.字典的增加直接相当于赋值,字典会自己检查赋值的键是否存在列表中,存在覆盖,不存在添加


6.2.3 先创建一个空字典

6.2.4 修改字典中的值
1.修改字典中值只需要根据键去赋值

6.2.5 删除键—值对
1.删除键值对的时候我们使用del语句进行删除

6.2.6 由类似对象组成的字典

1.直接定义字典元素跟JSON格式数据一样
2.当字典元素多行的时候,代码需要逗号分隔,而字符串需要用加号


动手试一试

6-1 人:使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。
该字典应包含键 first_name、last_name、age 和 city。将存储在该字典中的每项信息都
打印出来。
6-2 喜欢的数字:使用一个字典来存储一些人喜欢的数字。请想出 5 个人的名字,
并将这些名字用作字典中的键;想出每个人喜欢的一个数字,并将这些数字作为值存储
在字典中。打印每个人的名字和喜欢的数字。为让这个程序更有趣,通过询问朋友确保
数据是真实的。
6-3 词汇表:Python 字典可用于模拟现实生活中的字典,但为避免混淆,我们将后
者称为词汇表。
 想出你在前面学过的 5 个编程词汇,将它们用作词汇表中的键,并将它们的含
义作为值存储在词汇表中。
 以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加
上一个冒号,再打印词汇的含义;也可在一行打印词汇,再使用换行符(\n)
插入一个空行,然后在下一行以缩进的方式打印词汇的含义。



6.3 遍历字典

1.字典也可以使用for进行遍历
2.遍历的字典需要加上item()函数
3.遍历字典的键值对时候,可能不按照存储顺序进行打印,以你为python不在意顺序,只在意键值对关系


6.3.2 遍历字典中的所有键
1.使用keys()函数告诉for循环值遍历键,值不进行遍历 2.如果我们不适用keys()函数,编译器也默认我们遍历键 3.keys()函数返回的是一个列表


6.3.3 按顺序遍历字典中的所有键
1.在遍历字典的时候使用函数sorted(),打印出来的内容就会按照字典从头到尾获取

6.3.4 遍历字典中的所有值
1.当我们只遍历值的时候,使用.value()函数进行获取,从而不获取键 2.当我们获取值的时候,可能会重复,所以我们使用set()函数来进行重复值过滤

动手试一试

6-4 词汇表 2:既然你知道了如何遍历字典,现在请整理你为完成练习 6-3 而编写
的代码,将其中的一系列 print 语句替换为一个遍历字典中的键和值的循环。确定该循
6.4 嵌套 93 
环正确无误后,再在词汇表中添加 5 个 Python 术语。当你再次运行这个程序时,这些
新术语及其含义将自动包含在输出中。
6-5 河流:创建一个字典,在其中存储三条大河流及其流经的国家。其中一个键—
值对可能是'nile': 'egypt'。
 使用循环为每条河流打印一条消息,如“The Nile runs through Egypt.”。
 使用循环将该字典中每条河流的名字都打印出来。
 使用循环将该字典包含的每个国家的名字都打印出来。
6-6 调查:在 6.3.1 节编写的程序 favorite_languages.py 中执行以下操作。
 创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人
未包含在字典中。
 遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未
参与调查的人,打印一条消息邀请他参与调查。



6.4 嵌套

1.可以使用列表中每一个元素都是字典的样式,也可以字典中键值为字典
2.类似于Java的HashMap

6.4.1 字典列表
1.列表使用{},列表使用[],元组使用() 2.列表中包含字典


6.4.2 在字典中存储列表

1.字典中的值元素放入列表
2.字典中键不能为列表,因为键必须唯一,字典就是根据键进行查找值

![](https://img2023.cnblogs.com/blog/2199580/202308/2199580-20230814201558975-737985145.png
6.4.3 在字典中存储字典

1.使用字典中的字典也是跟使用字典一样
2.存储字典的也只能是值,键不能够存储


动手试一试

6-7 人:在为完成练习 6-1 而编写的程序中,再创建两个表示人的字典,然后将这
三个字典都存储在一个名为 people 的列表中。遍历这个列表,将其中每个人的所有信
息都打印出来。
6-8 宠物:创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;在
每个字典中,包含宠物的类型及其主人的名字。将这些字典存储在一个名为 pets 的列
表中,再遍历该列表,并将宠物的所有信息都打印出来。
6-9 喜欢的地方:创建一个名为 favorite_places 的字典。在这个字典中,将三个
人的名字用作键;对于其中的每个人,都存储他喜欢的 1~3 个地方。为让这个练习更有
趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字
及其喜欢的地方打印出来。
6-10 喜欢的数字:修改为完成练习 6-2 而编写的程序,让每个人都可以有多个喜欢
的数字,然后将每个人的名字及其喜欢的数字打印出来。
6-11 城市:创建一个名为 cities 的字典,其中将三个城市名用作键;对于每座城
市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市
的事实。在表示每座城市的字典中,应包含 country、population 和 fact 等键。将每座
城市的名字以及有关它们的信息都打印出来。
6-12 扩展:本章的示例足够复杂,可以以很多方式进行扩展了。请对本章的一个
示例进行扩展:添加键和值、调整程序要解决的问题或改进输出的格式。



6.5 小结

1.如何定义字典
2.如何访问修改存储在字典里的信息
3.如何遍历字典
4.如何遍历字典中的列表,和列表中的字典,和字典中的字典
posted @ 2023-08-10 20:09  网抑云黑胶SVIP用户  阅读(45)  评论(0编辑  收藏  举报