当我们存储的数据过多时,如何快速查找一个指定的数据就成了难题。要解决这样的问题,我们今天要学习新的数据类型——字典。
字典(Dict):在Python中,将两种数据关联在一起形成一个元素, 由多个这样的元素组成的数据类型称为字典,又称为dict。字典中的元素是不考虑排列顺序的。这里的字典和生活中的字典类似,英汉词典就是将26个由字母与单词关联的元素组成的。
组成字典元素(item)的两个数据一一对应,分别被称为键(key) 与值(value),所以字典的元素又称为键值对(key-value)。字典的元素只能通过键来查找对应的值,所以一个键只能对应一个值。就像在通讯录中,通过联系人-姓名(键)来查找联系方式-电话号码(值)。
在Python中,字典的键值对由冒号分割。冒号左边的数据为键,冒号右边的数据为值。将多个这样的数据以逗号分割,存储到一个大括号中,就形成了一个字典类型。
dictExample = {1:"张小明",2:"李大头",3:"刘老冲"}
print(dictExample[3])
![](https://img.haomeiwen.com/i14777386/1b47e148d5789312.png)
作为一种数据结构,字典和列表一样,也会有查找、删除、添加、修改等功能。但字典的元素是由键值对(key-value)组成,并且字典是没有顺序的结构,因此在功能的使用上,有所不同。
回忆一下列表的几个功能:查找list[0] 、 删除 list.pop()、添加list.append、修改list[0] = 123
字典访问元素:从列表中查看一个元素时,我们通过这个元素的索引,来进行查看。比如list[0]查看了列表list的第1个元素。但是字典是没有顺序的,也就没有索引,它只能通过字典的键(key)来查找对应的值(value)。
删除元素:从列表中删除一个元素时,我们使用pop()功能,通过这个元素的索引,来进行删除。在字典中,我们依旧使用pop()功能,通过这个元素的键,来进行删除。
![](https://img.haomeiwen.com/i14777386/5da5862e790af57b.png)
题目:给定一个字典selectHero用来存储一个游戏人物。selectHero = {"name": "小乔", "type": "法师", "MP": 1000}。用代码为该背包添加一个元素“backpack”并赋值为“蓝宝石”,并把键“MP”对应的数值修改为1700。最后输出selectHero。
selectHero = {"name": "小乔", "type": "法师", "MP": 1000}
# TODO 添加一个键 "backpack" 并赋值 "蓝宝石"
selectHero["backpack"] = "蓝宝石"
# TODO 把键 "MP" 对应的数值修改为 1700
selectHero["MP"] = 1700
# TODO 输出该字典
print(selectHero)
输出结果显示:{'name': '小乔', 'type': '法师', 'MP': 1700, 'backpack': '蓝宝石'}
目前为止我们只学过两种可以修改的数据类型,即字典与列表。现在我们来比较一下这两种数据类型在操作上的不同之处。
![](https://img.haomeiwen.com/i14777386/17d9eb4b5bb7ffdf.png)
若我们不知道字典有哪些键怎么办?
在字典中,我们还可以通过"keys()"功能获取这个字典所有的键。keys()是字典的一个功能,它能够提取一个字典所有的键,并存储在一个类似于列表的名为dict_keys的数据中,方便我们查看该字典的键。需要注意,keys的右边有一对空的括号。
studentAge = {"Gary": 14, "Adam": 13, "Jack": 15}
# TODO 利用 keys() 输出该字典所有的键
print(studentAge.keys())
# TODO 利用in运算判断 "Jeremy" 是否在字典中,并输出结果
result = "Jeremy" in studentAge
print(result)
书写字典时可能出现的错误/问题。
1. 键的错误
(1)在查字典的过程中,写错了键的名字
(2)查找了一个不存在的键
2.对字典使用数字索引或者切片
字典是无序的,不能通过数字或者切片来指定要访问的元素。
3.语法错误
字典的元素是由键值对组成的,键与值之间由冒号隔开,冒号的位置写错会造成语法错误。
网友评论