Python字典(dictionary)是python中除了列表之外最灵活的内置数据结构类型。列表是对象的有序集合,字典是对象的无序集合。两者的区别在于字典中的元素是通过键访问的,而不是通过偏移量访问的。利用列表中的下标索引可以快速得到对应的值,那么我们需要做两件事:如何为key计算一个唯一值,如何在一个定长列表中均匀唯一的分配唯一值计算一个唯一值valueforkey因为字典的key是immutable和hashable的,所以我们可以使用hash函数来计算key对应的唯一的hash值。如何在定长列表中均匀唯一地分配这个唯一值Hash是一种可以将大数据集映射到定长数据集的算法,所以我们可以对上面计算出的hash值进行hash。显然散列后会出现散列冲突。因此,我们需要处理好这种冲突,使唯一值能够均匀唯一地分配。这时候处理hash冲突的方法有两种:zipper法和openaddress法下面实现了两个函数put函数:put(slots,key,value),用于向字典中插入数据get函数:get(slots,key),用于从字典中读取数据。还可以实现更多的功能,比如dict.keys()#!/usr/bin/envpython#coding=utf-8slots=[]slotsNum=32for_inrange(32):slots.append([])defput(slots,key,value):i=hash(key)%slotsNumpos=-1forpos,(k,v)inenumerate(slots[i]):ifkey==k:breakelse:槽[i.append((key,value))如果pos>=0且pos
