干翻所有ddl 发表于 2024-11-14 18:57:43

创建入门三维列表里的一个问题

如图
请问为什么如图1这样子创建的时候,出现图2显示的错误是什么意思呢
我知道正确创建方式是图三,但是我想请教为什么像图1一样创建是错在哪里了呢

FishC 发表于 2024-11-14 18:57:56

虽然没有图,但是我可以根据您的描述猜测问题。

**问题原因:**
如果您是通过类似`list = [ * cols] * rows`来创建二维列表,会导致每一行都引用相同的子列表对象。这意味着改变一个元素会影响所有行,因为它们实际上是同一个列表的不同引用。

**错误现象:**
因此,当您尝试在这样的二维列表中修改某个特定位置的值时,会发现其他位置的值也被不当修改,这就是您所指的错误。

**正确方法:**
您提到的图三应该是通过嵌套列表解析或者循环,比如:
list = [ for _ in range(rows)]
这种方法创建的每一行都是独立的列表对象,修改一个位置的值不会影响其他行。

希望这能够解答您的疑问!如果还有具体错误信息,您可以分享更详细的信息供我帮助分析。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-11-14 20:59:13

z = * 3
for i in range(3):
    for j in range(2):
      z = * 2      # 错误,因为此刻的 z 还只是一个一维列表,无法按二维方式进行读写。
页: [1]
查看完整版本: 创建入门三维列表里的一个问题