gpt4 book ai didi

python - HashMap 使用 hash() 方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:08 25 4
gpt4 key购买 nike

<分区>

根据一些教程,我应用了一个 HashMap 类,并且只使用了一个 __get_hash_mod_size() 方法,

def __get_hash_mod_size(self, key):
hash_key_var = hash(key+str(self.hahsmap_size*0.01))
return hash_key_var % self.hahsmap_size

一切似乎都正常,但我不确定,我希望看到一些意见来改进它,或者是否可能存在任何问题或边缘情况?

哈希表

class HashMap():
def __init__(self):
self.hahsmap_size = 32
self.hashmap_data = [None] * self.hahsmap_size

def __get_hash_mod_size(self, key):
hash_key_var = hash(key+str(self.hahsmap_size*0.01))
return hash_key_var % self.hahsmap_size

def set_key_value(self, key, value):
key_var = self.__get_hash_mod_size(key)
key_value_list = [key, value]

if self.hashmap_data[key_var] is None:
self.hashmap_data[key_var] = list([key_value_list])
return True
else:
for pair in self.hashmap_data[key_var]:
print(pair)
if pair[0] == key:
pair[1] = value
return True
self.hashmap_data[key_var].append(key_value_list)
return True

def get_key(self, key):
key_var = self.__get_hash_mod_size(key)
if self.hashmap_data[key_var] is not None:
for pair in self.hashmap_data[key_var]:
if pair[0] == key:
return pair[1]
return None

def remove_key(self, key):
key_var = self.__get_hash_mod_size(key)

if self.hashmap_data[key_var] is not None:
return False
for i in range(len(self.hashmap_data[key_var])):
if self.hashmap_data[key_var][i][0] == key:
self.hashmap_data[key_var].pop(i)
return True
def print_hashmap(self):
for item in self.hashmap_data:
if item is not None:
print(item)


hm = HashMap()
hm.set_key_value('A', '1')
hm.set_key_value('A', '2')
hm.set_key_value('B', '1')
hm.set_key_value('A', '3')
hm.set_key_value('A', '4')
hm.set_key_value('C', '1')
hm.set_key_value('D', '1')
hm.set_key_value('E', '1')
hm.set_key_value('E', '2')
hm.remove_key('A')
hm.remove_key('B')
hm.remove_key('B')
hm.print_hashmap()

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com