
"Ben Wing" <ben@666.com> wrote in message news:4572C1F1.1050600@666.com...
many times writing somewhat complex loops over lists i've found the need to sometimes delete an item from the list. currently there's no easy way to do so; basically, you have to write something like
i = 0 while i < len(list): el = list[i] ...do something... if el should be deleted: del list[i] else: i += 1
My view: while loops are the standard construct for iteration. They give you complete control over the control variable(s). Hence no need for 'better iteration control'. The above is easy enough and quite clear.
note that you can't write
for x in list:
or even
for i in xrange(len(list)):
For loops are for the common case of straightforwardly iterating over a sequence. They are efficient both to write and execute. Let's not mess with them. -1
note also that you need to do some trickiness to adjust the index appropriately when deleting.
Iterate in reverse and no index adjustment is needed Terry Jan Reedy