问题描述
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]
结论:
- 可以使用全局列表访问权限在适当位置修改列表
- 列表项可以 不 来代替使用迭代对象修改
我可以找到的所有示例代码都使用全局列表访问器来就地修改列表。修改列表迭代器是如此邪恶吗?