> On Jun 12, 2015, at 11:00 PM, Fabien <fabien.mauss...@gmail.com> wrote: > but that awful bug made me wonder: is it a bad practice to interactively > modify the list you are iterating over? Yes. I am a newbie. I also have been confused when I read the tutorial. It recommends make a copy before looping. Then I try. #-------------------------- Test = [1, 2] For i in Test: Test.append(i) #-------------------------- But when i execute. The script does not end. I know there must something wrong. So I launch debugger and deserve the list after each loop. And I see: Loop 1: [ 1, 2, 1] Loop 2: [ 1, 2, 1, 2] Loop 3: [ 1, 2, 1, 2, 1] Loop 4: [ 1, 2, 1, 2, 1, 2] ...... So you can see that loop will *never* end. So I think you regard the 'i' as a pointer. After execute one loop the pointer repoints to next element , but at the same time you are appending element. So pointer will *never* repoints to the last element. How to solve? Change code to this #-------------------------- Test = [1, 2] For i in Test[:] : Test.append(i) #--------------------------
-- https://mail.python.org/mailman/listinfo/python-list