"""
A class that implements a set data structure
"""


class myset (object) :
    def __init__(self, items = None) :
        self.items = {}
        if items is not None :
            for item in items :
                self.add(item)
    def __len__(self) :
        return len(self.items)
    def __repr__(self) :
        item_strings = [str(item) for item in self.items]
        return "set with the elements\n" + ','.join(item_strings)
    def add(self, item) :
        self.items[item] = 1
    def remove(self, item) :
        if item not in self.items :
            raise ValueError, "cannot remove an item that is not present"
        del self.items[item]

if __name__ == "__main__" :
    s = myset(range(10))
    print s
    s.remove(5)
    print s