A

#### Arnaud Delobelle

I've got a seemingly simple problem, but for which I cannot find a

simple solution.

I have a set of objects (say S) containing an object which is equal to

a given object (say x). So

x in S

is true. So there is an object y in S which is equal to x. My

problem is how to retrieve y, without going through the whole set.

Here is a simple illustration with tuples (my actual scenario is not

with tuples but with a custom class):

Falsey = (1, 2, 3) # This is the 'hidden object'

S = set([y] + range(10000))

x = (1, 2, 3)

x in S True

x is y

I haven't found y. It's a very simple problem, and this is the

simplest solution I can think of:

class FindEqual(object):

def __init__(self, obj):

self.obj = obj

def __hash__(self):

return hash(self.obj)

def __eq__(self, other):

equal = self.obj == other

if equal:

self.lastequal = other

return equal

True

I've found y! I'm not happy with this as it really is a trick. Is

there a cleaner solution?