Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class List(object):
- def __init__(self, maxsize):
- self.__current_size = 0
- self.__maxsize = (maxsize + 1)
- self.__elems = {}
- def __setitem__(self, idx, elem):
- try:
- self.__current_size += 1
- if self.__current_size % self.__maxsize != 0:
- self.__elems[idx] = elem
- else:
- raise IndexError("Not supported index size")
- except Exception as e:
- raise e
- def __getitem__(self, idx):
- try:
- return self.__elems[idx]
- except IndexError as e:
- raise e
- def __repr__(self):
- return repr(filter(lambda el: el is not False,
- [len(self.__elems[k]) > 0 and self.__elems[k] for k in self.__elems]))
- def __last_idx(self):
- try:
- return self.__elems.items()[-1][0]
- except IndexError:
- return 0
- def remove_item(self, elem):
- for item in self.__elems.items():
- if item[1] == elem:
- self.__current_size -= 1
- del self.__elems[item[0]]
- def pop(self):
- try:
- idx = self.__last_idx()
- self.__current_size -= 1
- del self.__elems[idx]
- except KeyError:
- self.__current_size = 0
- def append(self, elem):
- last_idx = self.__last_idx()
- try:
- self.__current_size += 1
- if self.__current_size % self.__maxsize != 0:
- self.__elems[last_idx + 1] = elem
- else:
- raise IndexError("Not supported index size")
- except Exception as e:
- raise e
- mylist = List(2)
- mylist.pop()
- mylist.append("Hindaya")
- print(mylist)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement