2.3 list reverse() bug?
Terry Reedy
tjreedy at udel.edu
Sat Dec 27 16:45:48 EST 2003
"Bjorn Pettersen" <bjorn.pettersen at comcast.net> wrote in message
news:Xns945E70BA8545Dbjornpettersen at 216.196.97.136...
> The case I've seen come up repeatedly is a little simple, only involving
> deletions of the list:
>
> x = range(30)
> for i in x:
> if 5 <= i <= 10: # try to remove 5,6,7,8,9,10
> x.remove(i)
>
> the above removes 6,8,10 instead.
For those who don't know, in-place removal must be done in reverse.
x = range(15)
for i in range(14,-1,-1):
if 5 <= i <= 10: # try to remove 5,6,7,8,9,10
x.remove(i)
>>> x
[0, 1, 2, 3, 4, 11, 12, 13, 14]
tjr
More information about the Python-list
mailing list