Andreas Müller: > is there a construct like > list.find (10, key='ID')
You can create yourself a little convenience function, or you can use something like the following. First some testing code: class C: def __init__(self, id): self.id = id def __repr__(self): return "<%s>" % self.id seq = map(C, [1, -5, 10, 3]) print seq That prints: [<1>, <-5>, <10>, <3>] Then you can find the index of all the classes with id = 10: print [i for i, obj in enumerate(seq) if obj.id == 10] It returns a [2]. If seq doesn't contain the requires object(s) it returns an empty list. Or just the first, working lazily: print (i for i, obj in enumerate(seq) if obj.id == 10).next() This time if seq doesn't contain the requires object(s) it raises a StopIteration exception. You can of course wrap that into a function, using seq and 10 as arguments. Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list