位置: IT常识 - 正文

python哈希散列的映射(哈希表散列函数)

编辑:rootadmin

推荐整理分享python哈希散列的映射(哈希表散列函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:hash散列算法,hash散列算法,hash散列函数,哈希表散列函数,python哈希函数,python 哈希,python哈希表,python的哈希算法,内容如对您有帮助,希望把文章链接给更多的朋友!

1、散列的映射

python哈希散列的映射(哈希表散列函数)

Map()创建一个空映射,然后回到一个空映射集合。

在put(key,val)的映射中添加新的键值对。若键已存在,则用新值代替旧值。

get返回key对应的值。如果key不存在,返回none。

del通过del map[key]语句从映射中删除键-值对。

len()回到映射中存储的键-值对的数目。

当键存在时,in通过keyinmap等语句返回True,否则返回False。

2、实例

classMap(object):def__init__(self,size=11):self.size=sizeself.__slots=[None]*self.sizeself.__data=[None]*self.sizedefput(self,key,val):hashvalue=self.hashfunction(key,len(self.__slots))ifself.__slots[hashvalue]==None:self.__slots[hashvalue]=keyself.__data[hashvalue]=valelse:ifself.__slots[hashvalue]==key:self.__data[hashvalue]=valelse:nextslot=self.rehash(hashvalue,len(self.__slots))whileself.__slots[nextslot]!=Noneandself.__slots[nextslot]!=key:nextslot=self.rehash(nextslot,len(self.__slots))ifself.__slots[nextslot]==None:self.__slots[nextslot]=keyself.__data[nextslot]=valelse:self.__data[nextslot]=valdefget(self,key):startslot=self.hashfunction(key,len(self.__slots))data=Nonestop=Falsefound=Falseposition=startslotwhileself.__slots[position]!=Noneand\notfoundandnotstop:ifself.__slots[position]==key:found=Truedata=self.__data[position]else:position=self.rehash(position,len(self.__slots))ifposition==startslot:stop=Truereturndatadefdelete(self,key):passdef__getitem__(self,key):returnself.get(key)def__setitem__(self,key,val):self.put(key,val)def__delitem__(self,key):self.delete(key)deflen(self):passdefhashfunction(self,key,size):returnkey%sizedefrehash(self,oldhash,size):return(oldhash+1)%size
本文链接地址:https://www.jiuchutong.com/zhishi/304152.html 转载请保留说明!

上一篇:c语言void*指针是什么(c语言 *指针)

下一篇:python中断言的使用注意(python 断言)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络