Skip to content

Commit 85cc70e

Browse files
authored
Merge pull request joeyajames#10 from tomas2310328/master
Adding Keys function to return all values in hashMap.py
2 parents c289db1 + e3b3d19 commit 85cc70e

File tree

1 file changed

+50
-43
lines changed

1 file changed

+50
-43
lines changed

HashMap.py

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,62 @@
11
# Hash Map
22

33
class HashMap:
4-
def __init__(self):
5-
self.size = 6
6-
self.map = [None] * self.size
4+
def __init__(self):
5+
self.size = 6
6+
self.map = [None] * self.size
77

8-
def _get_hash(self, key):
9-
hash = 0
10-
for char in str(key):
11-
hash += ord(char)
12-
return hash % self.size
8+
def _get_hash(self, key):
9+
hash = 0
10+
for char in str(key):
11+
hash += ord(char)
12+
return hash % self.size
1313

14-
def add(self, key, value):
15-
key_hash = self._get_hash(key)
16-
key_value = [key, value]
14+
def add(self, key, value):
15+
key_hash = self._get_hash(key)
16+
key_value = [key, value]
1717

18-
if self.map[key_hash] is None:
19-
self.map[key_hash] = list([key_value])
20-
return True
21-
else:
22-
for pair in self.map[key_hash]:
23-
if pair[0] == key:
24-
pair[1] = value
25-
return True
26-
self.map[key_hash].append(key_value)
27-
return True
18+
if self.map[key_hash] is None:
19+
self.map[key_hash] = list([key_value])
20+
return True
21+
else:
22+
for pair in self.map[key_hash]:
23+
if pair[0] == key:
24+
pair[1] = value
25+
return True
26+
self.map[key_hash].append(key_value)
27+
return True
2828

29-
def get(self, key):
30-
key_hash = self._get_hash(key)
31-
if self.map[key_hash] is not None:
32-
for pair in self.map[key_hash]:
33-
if pair[0] == key:
34-
return pair[1]
35-
return None
29+
def get(self, key):
30+
key_hash = self._get_hash(key)
31+
if self.map[key_hash] is not None:
32+
for pair in self.map[key_hash]:
33+
if pair[0] == key:
34+
return pair[1]
35+
return None
3636

37-
def delete(self, key):
38-
key_hash = self._get_hash(key)
37+
def delete(self, key):
38+
key_hash = self._get_hash(key)
3939

40-
if self.map[key_hash] is None:
41-
return False
42-
for i in range (0, len(self.map[key_hash])):
43-
if self.map[key_hash][i][0] == key:
44-
self.map[key_hash].pop(i)
45-
return True
46-
return False
40+
if self.map[key_hash] is None:
41+
return False
42+
for i in range (0, len(self.map[key_hash])):
43+
if self.map[key_hash][i][0] == key:
44+
self.map[key_hash].pop(i)
45+
return True
46+
return False
47+
48+
def keys(self):
49+
arr = []
50+
for i in range(0, len(self.map)):
51+
if self.map[i]:
52+
arr.append(self.map[i][0])
53+
return arr
4754

48-
def print(self):
49-
print('---PHONEBOOK----')
50-
for item in self.map:
51-
if item is not None:
52-
print(str(item))
55+
def print(self):
56+
print('---PHONEBOOK----')
57+
for item in self.map:
58+
if item is not None:
59+
print(str(item))
5360

5461
h = HashMap()
5562
h.add('Bob', '567-8888')
@@ -64,4 +71,4 @@ def print(self):
6471
h.delete('Bob')
6572
h.print()
6673
print('Ming: ' + h.get('Ming'))
67-
74+
print(h.keys())

0 commit comments

Comments
 (0)