首页 > 后端开发 > Python教程 > 为什么在 Python 中修改列表变量也会影响分配给它的另一个变量?

为什么在 Python 中修改列表变量也会影响分配给它的另一个变量?

Patricia Arquette
发布: 2024-11-02 18:55:30
原创
811 人浏览过

Why Does Modifying a List Variable in Python Also Affect Another Variable Assigned to It?

意外的列表突变:了解引用的影响

在 Python 中,列表变量表示对存储在内存中的数组的引用。将一个列表变量分配给另一个列表变量时(例如,vec = v),实际发生的情况是传递数组的地址,而不是复制数组本身。

这意味着对一个列表进行的任何修改都会也会影响指向同一内存地址的其他列表。例如,考虑以下代码:

<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 中索引 5 处的值修改为 5 时,更改不仅会反映在 vec 中,还会反映在 v 中,因为两个变量都指向同一个底层数组。

创建列表的真实副本,使用 copy() 方法或以原始列表作为参数的 list() 构造函数,如下所示:

<code class="python">vec = v.copy()
vec = list(v)</code>
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板