Изменение итератора списка в Python запрещено?

Простой пример:

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]

Заключение:

  1. Списки могут быть изменены на месте, используя доступ к глобальному списку Списки могут
  2. Элементы списка не могут НЕ быть изменены на месте с помощью объекта-итератора

Все примеры кода, которые я могу найти, используют средства доступа к глобальным спискам для изменения списка на месте. Разве так плохо изменять итератор списка?

8
задан tshepang 23 August 2014 в 06:57
поделиться