Nick Vatamaniuc wrote: > The two are not of the same type: > > --------------------------------- > In : import sets > In : s1=sets.Set([1,2,3]) > > In : s2=set([1,2,3]) > > In: type(s1) > Out: <class 'sets.Set'> > > In : type(s2) > Out: <type 'set'> > > In : s1==s2 > Out: False # oops! > > In: s2==set(s1) > Out: True # aha! > ---------------------------------- > > You'll have to just cast: > unpickled_set=set(unpickled_set) > > -Nick V.
Or you may have this done automatically by hacking the Set class: from sets import Set import cPickle as pickle Set.__reduce__ = lambda self: (set, (self._data,)) s = Set([1,2,3]) x = pickle.dumps(s) print pickle.loads(x) This doesn't work though if you have already pickled the Set before replacing its __reduce__, so it may not necessarily be what you want. If there is a way around it, I'd like to know it. George -- http://mail.python.org/mailman/listinfo/python-list