首页IT科技python哈希表函数(python哈希散列的映射)

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

时间2025-07-31 02:15:07分类IT科技浏览5136
导读:1、散列的映射...

1              、散列的映射

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=size self.__slots=[None]*self.size self.__data=[None]*self.size defput(self,key,val): hashvalue=self.hashfunction(key,len(self.__slots)) ifself.__slots[hashvalue]==None: self.__slots[hashvalue]=key self.__data[hashvalue]=val else: ifself.__slots[hashvalue]==key: self.__data[hashvalue]=val else: 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]=key self.__data[nextslot]=val else: self.__data[nextslot]=val defget(self,key): startslot=self.hashfunction(key,len(self.__slots)) data=None stop=False found=False position=startslot whileself.__slots[position]!=Noneand\ notfoundandnotstop: ifself.__slots[position]==key: found=True data=self.__data[position] else: position=self.rehash(position,len(self.__slots)) ifposition==startslot: stop=True returndata defdelete(self,key): pass def__getitem__(self,key): returnself.get(key) def__setitem__(self,key,val): self.put(key,val) def__delitem__(self,key): self.delete(key) deflen(self): pass defhashfunction(self,key,size): returnkey%size defrehash(self,oldhash,size): return(oldhash+1)%size

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
安装漏洞补丁程序(Win10最新漏洞补丁更新失败怎么办?) seo网站推广方法(如何通过SEO推广提升网站排名)