首页  >  文章  >  后端开发  >  为什么在 Python 中修改一个列表会影响另一个列表?

为什么在 Python 中修改一个列表会影响另一个列表?

DDD
DDD原创
2024-11-02 12:37:02836浏览

Why Does Modifying One List Affect Another in Python?

Python 中的意外链接列表

在 Python 中使用列表时,可能会出现意外行为。让我们了解为什么更改一个列表会意外影响另一个列表。

问题:

考虑以下 Python 代码:

<code class="python">v = [0, 0, 0, 0, 0, 0, 0, 0, 0]
vec = v  # Assignment by reference
vec[5] = 5</code>

此代码执行后, v 和 vec 都在索引 5 处显示修改后的值:

>>> print(vec)
[0, 0, 0, 0, 0, 5, 0, 0, 0]
>>> print(v)
[0, 0, 0, 0, 0, 5, 0, 0, 0]

即使 v 没有明确修改,为什么它也会改变?

理解问题:

在Python中,当你将一个列表分配给一个新变量时,你并不是在创建一个副本;而是在创建一个副本。相反,您正在创建一个参考。这意味着 v 和 vec 都指向内存中相同的底层列表对象。

解决方案:

要拥有两个具有相同值的单独列表,您需要创建使用 list() 构造函数的副本:

<code class="python">vec = list(v)  # Creates a copy</code>

现在,当您对 vec 进行更改时,v 将不受影响。

以上是为什么在 Python 中修改一个列表会影响另一个列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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