Простой пример:
myList = [1, 2, 3, 4, 5]
for obj in myList:
obj += 1
print myList
печатает
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
, в то время как:
myList = [1, 2, 3, 4, 5]
for index in range(0,len(myList)):
myList[index] += 1
print myList
печатает
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
Заключение:
Все примеры кода, которые я могу найти, используют средства доступа к глобальным спискам для изменения списка на месте. Разве так плохо изменять итератор списка?