Rhamphoryncus wrote: > You grossly overvalue using the "in" operator on lists.
Maybe. But there is more to it than just 'in'. If you do: >>> c = numpy.zeros((2,)) >>> ll = [1, c, 3.] then the following all throw errors: 3 in ll, 3 not in ll, ll.index(3), ll.count(3), ll.remove(3) c in ll, c not in ll, ll.index(c), ll.count(c), ll.remove(c) Note how the presence of c in the list makes it behave wrong for 3 as well. > It's far more > common to use a dict or set for containment tests, due to O(1) > performance rather than O(n). I doubt the numpy array supports > hashing, so an error for misuse is all you should expect. Indeed it doees not. So there is not much to be gained from modifying equality comparison with sets/dicts. > In the rare case that you want to test for identity in a list, you can > easily write your own function to do it upfront: > def idcontains(seq, obj): > for i in seq: > if i is obj: > return True > return False Again, you can code around any particular case (though wrappers look like a more robust solution). Still, why not get rid of this wart, if we can find a way? --------------------------------------------------------------------------- Dr. Rasmus H. Fogh Email: [EMAIL PROTECTED] Dept. of Biochemistry, University of Cambridge, 80 Tennis Court Road, Cambridge CB2 1GA, UK. FAX (01223)766002 -- http://mail.python.org/mailman/listinfo/python-list