Python进阶之路 6.1 引入字典

6.1 引入字典

字典这个名称已经可以解释其部分的功能了。与经常查阅的英文字典、新华字典一样,通过一个关键字,快速查询更多的内容。而且查询速度与字典的厚度无关。Python语言中的字典也完全符合这个特性。根据创建字典时指定的关键字查询值,而且查询的速度与字典中的数据量无关。因此,字典非常适合根据特定的词语(键),查找与其对应的海量信息的应用。例如,手机的通讯簿就是一个非常典型的字典应用,对于一个通讯簿来说,一般是用电话号码作为字典的键值,然后用户根据电话号码,可以在字典中快速定位与该电话号码相关联的其他信息,如联系人姓名、通讯地址、微信等等。

现在先来看一下不使用字典应该如何进行快速定位某一个值。
假设有一个人名列表如下:

names = ['小黑','小白','小红','小黄']

现在要创建一个可以存储这些人的电话号码的小型数据库,应该怎么做呢?最直接的方法就是创建一个新的列表,按names列表中的人名顺序依次保存电话号码。也就是说,小黑的电话号码要保存在新列表的第1个位置,小白的电话号码要保存在新列表的第2个位置,以此类推。

numbers = ['123456','234567','576482','856729']

如果要找到某个姓名对应的电话号码,或找到某个电话号码对应的名字,那又应该如何去找?对于列表来说,定位某个元素的唯一方法是通过索引,因此,不管是查询姓名,还是电话号码,都需要先获取相应的索引。例如,要获取小白在names列表中的索引,应该使用names.index(‘小白’)。因此,实现姓名和电话号码直接的互查,要使用下面的代码。

names = ['小黑','小白','小红','小黄']

numbers = ['123456','234567','576482','856729']

#查询小白对应的电话号码
print(numbers[names.index('小白')])
#查询576482电话号码对应的姓名
print(names[numbers.index('576482')])

尽管用上面的代码可以实现我们要的功能,但是这样不觉得很麻烦吗?那为什么不简化一些呢?如使用下面的代码直接获取小白对应的电话号码。

print(numbers['小白'])

其实上面的代码使用的格式就是一个典型的字典的用法了。那么字典到底如何创建?如何使用呢?先别急,先把上面的这些代码看懂,然后在接着往下面学,会比较好一些。下节的6.2中,将介绍字典的创建和使用。

你可能感兴趣的:(Python,小白,新手,Python进阶之路,Python,新手,教程)