不允许在Python中修改列表迭代器?

问题描述

infor obj in myList:在每次迭代中obj都是in中元素的(浅)副本myList。因此,对的更改对的元素obj没有任何作用myList

这是 与的Perlfor my $obj (@myList) {}

解决方法

简单的例子:

myList = [1,2,3,4,5]
for obj in myList:
  obj += 1
print myList

版画

[1,5]
[1,5]

而:

myList = [1,5]
for index in range(0,len(myList)):
  myList[index] += 1
print myList

版画

[1,5]
[2,5,6]

结论:

  1. 可以使用全局列表访问权限在适当位置修改列表
  2. 列表项可以 来代替使用迭代对象修改

我可以找到的所有示例代码都使用全局列表访问器来就地修改列表。修改列表迭代器是如此邪恶吗?