>>>>> Vibha Tripathi <[EMAIL PROTECTED]> (VT) wrote: >VT> Hi Folks, >VT> I know sets have been implemented using dictionary but >VT> I absolutely need to have a set of dictionaries...any >VT> ideas how to do that?
A set cannot contain duplicates. What happens when one of the dictionaries in the set is modified in such a way that it becomes equal to another element? Maybe you just need a list of dictionaries? Or maybe you want immutable dictionaries to put in the set. In that case you can define your own immutable dictionary class that defines a hash function. Ideally you would redefine the dictionary modification methods to make them generate error messages. For safety in the following code a copy is made of the dict. The values in the dict must be hashable, which usually means immutable. class immdict(dict): def __init__(self, somedict): self.data = somedict.copy() def __hash__(self): result = 0 for elt in self.data: result ^= hash(elt) ^ hash(self.data[elt]) return result def __repr__(self): return repr(self.data) __str__ = __repr__ d = immdict({1:0, 2:3}) s = Set() s.add(d) -- Piet van Oostrum <[EMAIL PROTECTED]> URL: http://www.cs.uu.nl/~piet [PGP] Private email: [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list