On Wed, Mar 26, 2008 at 2:50 PM, kellygreer1 <[EMAIL PROTECTED]> wrote: > How come the Set() thing seems to work for some people and I get the > 'unhashable' error? > > How do you test for 'membership' on a dictionary? > > # where tmp is the non-unique list > # dct is a dictionary where each unique key will be tied to a count > (the value) > # for testing I was setting the count to 0 > for v in tmp: > if not v in dct: dct[v] = 0 > > # I get unhashable error here. > # Even if I write it. > > for v in tmp: > if not v in dct.keys(): dct[v] = 0 > > What am I missing?
Some of the elements of tmp are unhashable. Unhashable items can't be the keys of a dictionary or members of a set. I don't think you've said anywhere in the thread what these items are, you just started out with an example of a list of integers. Do you believe the elements in tmp are integers? If so, try the following - for v in tmp: print type(v), repr(v), hash(v) and let us know what it spits out. -- Jerry -- http://mail.python.org/mailman/listinfo/python-list