Неправильно изменять последовательность, повторяющуюся в цикле (это может произойти только для изменяемых типов последовательностей, таких как списки). Если вам нужно изменить список, который вы повторяете (например, чтобы дублировать выбранные элементы), вы должны перебирать копию. Нотация среза делает это особенно удобным:
>>> for x in a[:]: # make a slice copy of the entire list ... if len(x) > 6: a.insert(0, x) ... >>> a ['defenestrate', 'cat', 'window', 'defenestrate']
почему не безопасно просто делать for x in a
??