Reputation: 43
I've used arrays in python (both as list and array.array) but I was wondering how can I implement a data structure like an array in Python. The following is my implementation after looking at implementations done in other languages. Please let me know of improvements.
class my_array:
def __init__(self, length):
self.length = length
self.data = {}
def get(self, index):
return self.data[index]
def push(self, item):
self.data[self.length] = item
self.length += 1
return self.data
def pop(self):
last_item = self.data[self.length - 1]
del self.data[self.length-1]
self.length -= 1
return last_item
def insert(self, index, item):
self.data[index] = item
Upvotes: 3
Views: 1403
Reputation: 313
This code might help:
class LengthExceeded(Exception):
pass
class Array():
def __init__(self, ele_type=int, length=100):
self.type = ele_type
self.len = length
self.data = []
def _validate(self, object):
if type(object) != self.type:
raise TypeError
if len(self.data) == self.len:
raise LengthExceeded
def append(self, value):
self._validate(value)
self.data.append(value)
def insert(self, index, value):
self._validate(value)
self.data.insert(index, value)
def pop(self):
if len(self.data) == 0:
raise IndexError
self.data.pop()
def remove(self, index):
if 0<= index < len(self.data):
self.data.pop(index)
raise IndexError
def __iter__(self):
return iter(self.data)
def __len__(self):
return len(self.data)
def __repr__(self):
return f'Array({self.type}, {self.len})'
def __getitem__(self, item):
return self.data[item]
def __setitem__(self, key, value):
self.data[key] = value
Upvotes: 0