class MyMap:
def __init__(self,size=10):
self.size = size
self.internal_list = [None] * size
def _getHash(string,size):
total = 0
for ch in string:
total += ord(ch)
total = total % size
return total
def set(self,key,value):
listnum = MyMap._getHash(key,self.size)
if key in self.internal_list:
print("already there")
return None
if self.internal_list[listnum] == None or self.internal_list[listnum] is type(tuple):
self.internal_list[listnum] = (key, value)
else:
pass
def get(self,key):
listnum = MyMap._getHash(key,self.size)
if self.internal_list[listnum] == None:
return None
else:
return self.internal_list[listnum][1]internal_list[listnum][2]
def size(self):
sizecount = 0
count = 0
while len(self.internal_list)-count != 0:
if self.internal_list[count] != None:
sizecount += 1
count += 1
return sizecount
def getKeys(self):
keylist = []
count = 0
while len(self.internal_list) - count != 0:
if self.internal_list[count] != None:
keylist.append(self.internal_list[count][0])
count += 1
return keylist
Here's what I've tested:
x = MyMap()
x.set('test',2)
x.set('crest',3)
x.set('best',5)
print(MyMap.size(x))
print(x.get('test'))
print(MyMap.getKeys(x))
print(x.internal_list)
and the results...
