为什么更改一个列表会意外地改变另一个
在 Python 中,经常会遇到更改一个列表似乎会意外影响另一个列表的情况。让我们检查一下为什么会发生这种情况。
考虑以下代码:
<code class="python">v = [0, 0, 0, 0, 0, 0, 0, 0, 0] vec = v vec[5] = 5</code>
执行此代码后,v 和 vec 都会显示以下修改后的列表:[0, 0, 0, 0, 0, 5, 0, 0, 0].
解释:
vec 和 v 不是单独的列表,而是对内存中同一列表的引用。当您分配 vec = v 时,您并不是在创建新列表;而是在创建新列表。相反,您为 vec 提供与 v 相同的地址。因此,对 vec 所做的任何修改都会直接影响 v 和 vec 引用的原始列表。
解决方案:
要创建 v 的副本而不仅仅是对它的引用,您应该使用以下语法:
<code class="python">vec = list(v)</code>
通过使用 list(v),您可以创建一个具有与v. 对 vec 所做的任何更改都不会影响 v,反之亦然。
以上是为什么在 Python 中修改一个列表似乎会改变另一个列表?的详细内容。更多信息请关注PHP中文网其他相关文章!