list是活的,从一个reference里面create,这个reference变了,list也跟着变。
比如:
nodes = graph.nodes()
for n in nodes:
# 这里做一系列操作使得graoh.nodes()变多
这里会发现nodes也跟着变多了,之后循环会无穷无尽。
解决办法:
shallow copy of the original list.
nodes = graph.nodes().copy()
本文探讨了在Python中,如何避免因引用改变导致列表内容同步更新的问题,通过介绍shallow copy技术,重点讲解了为何`nodes=graph.nodes().copy()`能防止无限循环。
list是活的,从一个reference里面create,这个reference变了,list也跟着变。
比如:
nodes = graph.nodes()
for n in nodes:
# 这里做一系列操作使得graoh.nodes()变多
这里会发现nodes也跟着变多了,之后循环会无穷无尽。
解决办法:
shallow copy of the original list.
nodes = graph.nodes().copy()

被折叠的 条评论
为什么被折叠?