Advertisement
renix1

Creating your own List (python 3)

Feb 17th, 2020
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.82 KB | None | 0 0
  1. class List(object):
  2.     def __init__(self, maxsize):
  3.         self.__current_size = 0
  4.         self.__maxsize = (maxsize + 1)
  5.         self.__elems = {}
  6.        
  7.     def __setitem__(self, idx, elem):
  8.         try:
  9.             self.__current_size += 1
  10.             if self.__current_size % self.__maxsize != 0:
  11.                 self.__elems[idx] = elem
  12.             else:
  13.                 raise IndexError("Not supported index size")
  14.         except Exception as e:
  15.             raise e
  16.        
  17.     def __getitem__(self, idx):
  18.         try:
  19.             return self.__elems[idx]
  20.         except IndexError as e:
  21.             raise e
  22.        
  23.     def __repr__(self):
  24.         return repr(filter(lambda el: el is not False,
  25.                             [len(self.__elems[k]) > 0 and self.__elems[k] for k in self.__elems]))
  26.        
  27.     def __last_idx(self):
  28.         try:
  29.             return self.__elems.items()[-1][0]
  30.         except IndexError:
  31.             return 0
  32.        
  33.     def remove_item(self, elem):
  34.         for item in self.__elems.items():
  35.             if item[1] == elem:
  36.                 self.__current_size -= 1
  37.                 del self.__elems[item[0]]
  38.                
  39.     def pop(self):
  40.         try:
  41.             idx = self.__last_idx()
  42.             self.__current_size -= 1
  43.             del self.__elems[idx]
  44.         except KeyError:
  45.             self.__current_size = 0
  46.        
  47.     def append(self, elem):
  48.         last_idx = self.__last_idx()
  49.         try:
  50.             self.__current_size += 1
  51.             if self.__current_size % self.__maxsize != 0:
  52.                 self.__elems[last_idx + 1] = elem
  53.             else:
  54.                 raise IndexError("Not supported index size")
  55.         except Exception as e:
  56.             raise e
  57.        
  58. mylist = List(2)
  59. mylist.pop()
  60. mylist.append("Hindaya")
  61. print(mylist)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement