Python基础学习笔记四(字典)

 本文继续对Python基础进行学习,你将学习能够将相关信息关联起来的Python字典,学习如何访问和修改字典中的信息,还将学习存储字典的列表、存储列表的字典和存储字典的字典,希望我的经验可以帮到大家!有任何疑问可以评论区见呦!注:文中实例均于Jupyter notebook下编译。

1. 什么是字典

 为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如图 1 所示:
Python基础学习笔记四(字典) 由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。
 程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。
 下面的例子让你更好的理解字典是什么:
Python基础学习笔记四(字典)

2. 使用字典

 我们应牢记字典包含多个 key-value 对,而 key 是字典的关键数据,因此程序对字典的操作都是基于 key 的。

2.1 访问字典中的值

 要获取与键相关联的值,可依次指定字典名和放在方括号内的键:
Python基础学习笔记四(字典)

2.2 添加键—值对

 字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。在空字典中添加键—值对是为了方便,而有时候必须这样做。为此,可先使用一对空的花括号定义一个字典,再分行添加各个键—值对。
Python基础学习笔记四(字典)
 注意:键—值对的排列顺序与添加顺序可能不同,因为Python不关心键—值对的添加顺序,而只关心键和值之间的关联关系。

2.3 删除键—值对

 对于字典中不再需要的信息,可使用del 语句将相应的键—值对彻底删除。使用del 语句时,必须指定字典名和要删除的键,最终会删除掉键和值,注意:删除的键—值对永远消失了。
Python基础学习笔记四(字典)

2.4 修改字典中的值

 要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。
Python基础学习笔记四(字典)

2.5 由类似对象组成的字典

 在前面的示例中,字典存储的是一个对象的多种信息,但你也可以使用字典来存储众多对象的同一种信息。例如对班级多名同学统计他们的数学成绩:
Python基础学习笔记四(字典)

3. 遍历字典

 一个Python字典可能只包含几个键—值对,也可能包含数百万个键—值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。
 字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键—值对、键或值。

3.1 遍历所有的键—值对

要获悉该用户字典中的所有信息,返回字典的所有的key和value,可以使用items( )方法:
Python基础学习笔记四(字典)

3.2 遍历字典中的所有键

&emsp要获悉该用户字典中的所有key,可以使用keys( )方法:
Python基础学习笔记四(字典)
 但其实,遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in scores.keys(): 替换为for name in scores: ,输出将不变。 如果显式地使用方法keys() 可让代码更容易理解,你可以选择这样做,但如果你愿意,也可省略它。

 字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的,但这个是不影响的,主要键和值得关系对便可。如果 要以特定的顺序返回元素,一种办法是在for 循环中对返回的键进行排序,可使用函数sorted() 来获得按特定顺序排列的键列表的副本:
Python基础学习笔记四(字典)

3.3 遍历字典中的所有值

 当我们需要的是字典包含的值,可使用方法values( ) ,它返回一个值列表,而不包含任何键:
Python基础学习笔记四(字典)
 上面例子是提取字典中所有的值,而没有考虑这些值是否重复。为剔除重复项,可使用集合(set)去处理,集合类似于列表,但每个元素都必须是独一无二的:
Python基础学习笔记四(字典)

4. 嵌套

 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,而这种操作称为嵌套 。嵌套是一项强大的功能,你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

4.1 字典列表

Python基础学习笔记四(字典)
 但在实际情况中,一个班级的同学不止三个,而是很多个,因此我们可以用随机数的形式生成,最后再去修改:
Python基础学习笔记四(字典)
Python基础学习笔记四(字典)

4.2 在字典中存储列表

 每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。当我们统计人们喜欢的水果种类时,在这种情况 下,当我们遍历字典时,与每个被调查者相关联的都是一个水果种类列表, 而不是一种水果;因此,在遍历该字典的for 循环中,我们需要再使用 一个for 循环来遍历与被调查者相关联的水果种类列表:
Python基础学习笔记四(字典)

4.3 在字典中存储字典

Python基础学习笔记四(字典)
 注意:表示每位用户的字典的结构都相同,虽然Python并没有这样的要求,但这使得嵌套的字典处理起来更容易。倘若表示每位用户的字典都包含不同的键,for 循环内部的代码将更复杂。

 当你看到这里的时候,恭喜你学习到了python字典的一些基础知识,后续会接着更新Python基础学习笔记,敬请阅读,谢谢你的阅读!

参考书籍:《Python编程从入门到实践》