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