首页 >后端开发 >Python教程 >为什么在 Python 中修改一个列表似乎会改变另一个列表?

为什么在 Python 中修改一个列表似乎会改变另一个列表?

Patricia Arquette
Patricia Arquette原创
2024-11-02 13:05:30959浏览

Why Does Modifying One List Seem to Change Another in Python?

为什么更改一个列表会意外地改变另一个

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn