微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决不允许在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. 列表项可以 来代替使用迭代对象修改

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。