Skip to content

Commit d784408

Browse files
unknownunknown
authored andcommitted
Sparse Array mostly completed. Very cool assignment actually. learned a lot
1 parent e582e01 commit d784408

File tree

1 file changed

+45
-17
lines changed

1 file changed

+45
-17
lines changed

students/MichaelGregor/Session 9/SparseArray.py

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,55 @@
22

33
class SparseArray(object):
44

5-
def __init__(self, array=[]):
6-
self._array = array
7-
8-
@property
9-
def array(self):
10-
return self.array
11-
12-
@array.setter
13-
def array(self, item):
14-
self.array.append(item)
15-
16-
@array.deleter
17-
def array(self, index):
18-
self.array.pop[index]
5+
def __init__(self, array):
6+
if array == None:
7+
return self._array
8+
else:
9+
self._array = array
10+
11+
def __getitem__(self, key):
12+
try:
13+
return self._array[key]
14+
except IndexError:
15+
return 0
16+
17+
def __setitem__(self, key, value):
18+
try:
19+
if value is not 0:
20+
self._array[key] = value
21+
except IndexError:
22+
num_diff = (key - len(self._array))
23+
for index in range(num_diff):
24+
self._array.append(0)
25+
self._array.append(value)
26+
27+
def __delitem__(self, key):
28+
del self._array[key]
29+
30+
def __len__(self):
31+
return len(self._array)
32+
33+
def append(self, item):
34+
self._array.append(item)
1935

2036

2137
def main():
2238

23-
sa = SparseArray([1, 2, 3, 4])
24-
25-
39+
sa = SparseArray([1,2,0,0,0,0,3,0,0,4])
40+
print(len(sa))
41+
sa.append(5)
42+
print("index 10 is {}".format(sa[10]))
43+
sa[2] = 9
44+
print("index 2 is {}".format(sa[2]))
45+
del sa[2]
46+
print("index 2 is {}".format(sa[2]))
47+
sa[15] = 20
48+
print("index 15 is {}".format(sa[15]))
49+
print("index 12 is {}".format(sa[12]))
50+
sa[15] = 0
51+
print("index 15 is {}".format(sa[15]))
52+
value = sa[25]
53+
print(value)
2654

2755

2856
if __name__ == "__main__":

0 commit comments

Comments
 (0)