On Fri, 07 Dec 2007 11:56:14 +0100, Bruno Desthuilliers wrote:
> Also, modifying a sequence in place while iterating over it is a *very*
> bad idea.
That's somewhat of an exaggeration, surely. Some sorts of modifications
are more error-prone than others, and deserves your warning e.g.
inserting or deleting items (as the OP was doing). But modifying the
items themselves isn't risky at all. E.g. instead of this:
L = []
for x in xrange(1000000):
L.append(result_of_some_calculation(x))
a perfectly reasonable optimization technique for large lists is:
L = [None]*1000000
for i,x in enumerate(L):
L[i] = result_of_some_calculation(x)
The second avoids needing to re-size the list repeatedly, which is quite
slow.
--
Steven
--
http://mail.python.org/mailman/listinfo/python-list