class UnorderedList:

    def __init__(self):
        self.items = []
        
    def isEmpty(self):
        return self.items == []
        
    def size(self):
        return len(self.items)

    #this method is really a prepend - it puts the new node at the beginning
    def add(self,item):
        self.items.insert(0,item)
            
    def __repr__(self):
        return repr(self.items)

    def get(self,index):    
        return self.items[index]
    
    def __getitem__(self,index):
        return self.get(index)
    
    def pop(self,index):
        return self.items.pop(index)

    def remove(self,item):
        self.items.remove(item)


    def search(self,item):
        return item in self.items

    def __contains__(self,item):
        return self.search(item)


#just some code to test it out
mylist = UnorderedList()

mylist.add(31)
mylist.add(77)
mylist.add(17)
mylist.add(93)
mylist.add(26)
mylist.add(54)

print(mylist)
print(mylist[2])
print(26 in mylist)
print(mylist.size())
print(mylist.isEmpty())
print(mylist.pop(1))
mylist.remove(77)
print(mylist)
