Skip to content

Commit fb4ee6c

Browse files
committed
Array Implementation in Python
1 parent 62f97fd commit fb4ee6c

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

Arrays/Arrays.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Author: OMKAR PATHAK
2+
3+
class Array(object):
4+
''' sizeOfArray: denotes the total size of the array to be initialized
5+
arrayType: denotes the data type of the array(as all the elements of the array have same data type)
6+
arrayItems: values at each position of array
7+
'''
8+
def __init__(self, sizeOfArray, arrayType = int):
9+
self.sizeOfArray = len(list(map(arrayType, range(sizeOfArray))))
10+
self.arrayItems =[arrayType(0)] * sizeOfArray # initialize array with zeroes
11+
12+
def __str__(self):
13+
return ' '.join([str(i) for i in self.arrayItems])
14+
15+
def __len__(self):
16+
return len(self.arrayItems)
17+
18+
# magic methods to enable indexing
19+
def __setitem__(self, index, data):
20+
self.arrayItems[index] = data
21+
22+
def __getitem__(self, index):
23+
return self.arrayItems[index]
24+
25+
# function for search
26+
def search(self, keyToSearch):
27+
for i in range(self.sizeOfArray):
28+
if (self.arrayItems[i] == keyToSearch): # brute-forcing
29+
return i # index at which element/ key was found
30+
31+
return -1 # if key not found, return -1
32+
33+
# function for inserting an element
34+
def insert(self, keyToInsert, position):
35+
if(self.sizeOfArray > position):
36+
for i in range(self.sizeOfArray - 2, position - 1, -1):
37+
self.arrayItems[i + 1] = self.arrayItems[i]
38+
self.arrayItems[position] = keyToInsert
39+
else:
40+
print('Array size is:', self.sizeOfArray)
41+
42+
# function to delete an element
43+
def delete(self, keyToDelete, position):
44+
if(self.sizeOfArray > position):
45+
for i in range(position, self.sizeOfArray - 1):
46+
self.arrayItems[i] = self.arrayItems[i + 1]
47+
else:
48+
print('Array size is:', self.sizeOfArray)
49+
50+
if __name__ == '__main__':
51+
a = Array(10, int)
52+
a.insert(2, 2)
53+
a.insert(3, 1)
54+
a.insert(4,7)
55+
print(len(a))

0 commit comments

Comments
 (0)