import collections class Unsorted_Map(collections.MutableMapping): class _Item(object): def __init__(self , k , v): self._key= k self._value= v def __eq__(self, other): return self._key==other._key def __ne__(self, other): return not (self == other) def __It__(self , other): return self._key < other._key def __init__(self): self._table = [] def __len__(self): return len(self._table) def __iter__(self): for item in self._table: yield item._key def __getitem__(self, k): for item in self._table: if item._key == k: return item._value raise keyError("key not found") def __setitem__(self, key, v): for item in self._table: if item._key == k: item._value = v return self._table.append(self._Item(k,v)) def __delitem__(self, k): for i in range(len(self._table)): if self._table[i]._key == k: self._table.pop(i) return raise keyError("key not found") from Unsorted_Map import Unsorted_Map if __name__== '__main__': um = Unsorted_Map() print(len(um)) print("="*30) um.__setitem__("class", "algorithm") um.__setitem__("building", "CTUT") um.__setitem__(7."saturday") um.__setitem__("a_list",[1,2,3,4]) print(len(um)) print("="*30) for key in um: print(key) print(str(key) +" : "+str(um.__getitem__(key))) print("="*30) um.__setitem__("class","algorithm and data structures") um.__setitem__("another_list", [6,7,8,9,"a","10"]) for key in um: print(str(key)+" : "+str(um.__getitem__(key))) print("="30) print(um["class"]>um["building"]) print(um[7]>um["class"])