我在 python 中使用了数组(作为 list 和 array.array),但我想知道如何在 Python 中实现像数组这样的数据结构。以下是我在查看其他语言的实现后的实现。请让我知道改进之处。
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
此代码可能有帮助:
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