首页  >  文章  >  后端开发  >  为什么修改嵌套列表元素会影响 Python 中的所有子列表?

为什么修改嵌套列表元素会影响 Python 中的所有子列表?

Barbara Streisand
Barbara Streisand原创
2024-11-02 04:34:02261浏览

Why Does Modifying a Nested List Element Affect All Sublists in Python?

嵌套列表索引

在 Python 中使用嵌套列表时,了解列表引用的概念及其如何影响列表索引非常重要.

列表引用

与许多按值传递变量的编程语言不同,Python 通过引用传递列表。这意味着将列表分配给另一个变量会创建对内存中同一基础列表对象的引用。

嵌套列表索引

在提供的代码中,出现了问题来自列表乘法的使用。 some_list = 4 * [(4 * [0])] 行创建对同一列表对象的四个引用,这意味着对其中一个子列表的更改将影响所有四个子列表。

预期结果

预期结果为:

[0, 0, 0, 0]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]

实际结果

实际结果为:

[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]

解决方案

要避免此问题,请使用循环创建嵌套列表,而不创建对同一列表的多个引用。更正后的代码是:

some_list = [(4 * [0]) for _ in range(4)]

此循环创建四个独立的列表,每个列表有四个零,确保实现预期的行为。

以上是为什么修改嵌套列表元素会影响 Python 中的所有子列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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