一、字典的介绍
字段类型是一种存储键值对的数据结构,为什么需要字典来存?上篇文章提到的列表不能实现吗?我们假设这么一个需求,一个班级需要存储全班同学的成绩。如果使用列表那数据是这样的:
l = [
'小明', [78, 89, 45],
'小红', [99, 87, 68],
'小刚', [93, 82, 87]
]
这样会存在两个问题: 首先: 查询其中一个同学的成绩需要先数到同学的索引号。其次子列表三个成绩,哪个是语文?哪个是数学?针对类型一直或相似的数据无法通过描述进行识别。因此,Python 提供的字典类型来解决这一现象。
1.1、字典的定义与取值
字典的定义需要使用大括号 {} 来表示,每一对元素之间使用逗号 , 分割。元素的键和值之间使用冒号 : 分割。例:
>>> d = {'小明':99, '小刚':88}
>>> print(type(d))
<class 'dict'>
如上,我们就定义了一个字典,类型为 dict。字典的取值方式是通过 d[key] 来获取值,我们直接看示例,获取小明的成绩通过以下方式即可。
>>> d['小刚']
88
如上:我们就成功的取到了想要的值,而不需要像列表那样先去数 小刚 在列表的第几位。
1.2、字典嵌套
在上个示例中,我们只存储了一个成绩,那三个成绩如何存储呢。和列表一样,字典也是支持嵌套的。即字典的值也可以是一个字典。
d = {
'小明': {'语文': 78, '数学': 89, '英语': 45},
'小红': {'语文': 99, '数学': 87, '英语': 68},
'小刚': {'语文': 93, '数学': 82, '英语': 87}
}
>>> print(d['小刚']['英语'])
87
如示例所示,我们就实现了字典的嵌套使用。通过key就可以精准的找到小刚的英语成绩。
二、字典与列表联合使用
既然列表可以嵌套,字典也可以嵌套,那列表和字典能否互相嵌套使用呢,当然是可以的。还是拿上边的例子:每个子字典都定义了 ”语文、数学、英语“这三个元素非常冗余,需要多敲那么多次。但是程序是我们自己编写的,我们自己可以约束就按照语数外的顺序来存储成绩,那就可以这么来存:
d = {
'小明': [78, 89, 45],
'小红': [99, 87, 68],
'小刚': [93, 82, 87]
}
>>> print(d['小刚'][3])
87
这样,我们一样取到了想要的值,同时提升了代码的观赏性。这个实例中,我们降列表嵌到了字典中。 Python 是允许互相嵌套的,即列表的元素也可以是一个字典。字典的值也可以又是一个列表。只要你愿意,可以一直嵌套下去。总之,遇到了字典就通过 key 来取值,遇到列表就通过索引来取值。
字典的相关内容就先介绍这么多,关于字典更多的操作请关注后续文章。
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付
