> Removing from a list while you iterate will had quadratic performance Anecdote: I was doing a route-finding program for a railway ticketing system. My replacement explained to my boss that it couldn't be done: the problem was one of that class of problems that has no good optimum solution. My replacement told me this while we were doing the hand-over. I told him that the route-finding optimiser was already complete.
It did a search of possible routes over the 3 loops, 15 branches and 75 stations in less time than it took to redraw the screen, and that was without even bothering to recode the tail recursion. In my present case, the lists I am working with have ~10 elements. Defined behaviour, even if it was inapropriate for my needs, would be welcome. Language enhancement that make the code clearer and easier would be welcome. Optimisers for large sets I could continue to do by other means. Raw cPython is probably not a good choice for real-time signal processing, but that's not what I am doing. > O(n) to find the element you wish to remove and move over > everything after it, Is that how lists are stored in cPython? It seems unlikely? Steve. "Rhamphoryncus" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > On Sep 6, 1:56 pm, Karthik Gurusamy <[EMAIL PROTECTED]> wrote: >> That said, it may be a good future language enhancement to define a >> reasonable consistent behavior for an iterator over a changing >> collection. This occurs quite common when we walk a collection and >> usually delete the current item. >> -- http://mail.python.org/mailman/listinfo/python-list