Mega Code Archive

 
Categories / Python Tutorial / Collections
 

Base your set on list

class Set(list):     def __init__(self, value = []):         list.__init__([])         self.concat(value)     def intersect(self, other):         res = []         for x in self:             if x in other:                 res.append(x)         return Set(res)     def union(self, other):         res = Set(self)         res.concat(other)         return res     def concat(self, value):         for x in value:             if not x in self:                 self.append(x)     def __and__(self, other): return self.intersect(other)     def __or__(self, other):  return self.union(other)     def __repr__(self):       return 'Set:' + list.__repr__(self) x = Set([1,3,5,7]) y = Set([2,1,4,5,6]) print x, y, len(x) print x.intersect(y), y.union(x) print x & y, x | y x.reverse(  ); print x