手机都内置了方便的电话簿,其中每个姓名都有对应的电话号码。
假设你要创建一个类似这样的电话簿,将姓名映射到电话号码。该电话簿需要提供如下功能。
- 添加联系人及其电话号码。
- 通过输入联系人来获悉其电话号码。
这非常适合使用散列表来实现!在下述情况下,使用散列表是很不错的选择。
- 创建映射。
- 查找。
创建电话簿非常容易。首先,新建一个散列表。
>>> phone_book = dict()
顺便说一句, Python提供了一种创建散列表的快捷方式——使用一对大括号。
>>> phone_book = {}
下面在这个电话簿中添加一些联系人的电话号码。
>>> phone_book["jenny"] = 8675309
>>> phone_book["emergency"] = 911
这就成了!现在,假设你要查找Jenny的电话号码,为此只需向散列表传入相应的键。
>>> print phone_book["jenny"]
8675309#Jenny的电话号码
如果要求你使用数组来创建电话簿,你将如何做呢?散列表让你能够轻松地模拟映射关系。
散列表被用于大海捞针式的查找。例如,你在访问像http://adit.io 这样的网站时,计算机必须将adit.io转换为IP地址。
adit.io -> 173.255.248.55
无论你访问哪个网站,其网址都必须转换为IP地址。
这不是将网址映射到IP地址吗?好像非常适合使用散列表啰!这个过程被称为DNS解析(DNS resolution) ,散列表是提供这种功能的方式之一。