Rasmus Fogh wrote:
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.
So do not put numpy arrays into lists without wrapping them. They were
designed and semi-optimized, by a separate community, for a specific
purpose -- numerical computation -- and not for 'playing nice' with
other Python objects.
It is a design feature of Python that people can implement specialized
objects with specialized behaviors for specialized purposes.
--
http://mail.python.org/mailman/listinfo/python-list