You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多维列表初始化疑问:修改一子列表为何影响其他子列表?

问题原因与解决方法

为什么修改一个子列表会影响另一个?

当你用a = [[0,0,0]] * 2创建列表时,Python并没有生成两个独立的[0,0,0]子列表,而是把同一个子列表的引用复制了两次。也就是说,a[0]和a[1]指向的是内存里的同一个列表对象,所以修改a[0][2]时,本质是修改了那个唯一的子列表,a[1]作为引用自然也会显示变化。

而手动写a = [[0, 0, 0], [0, 0, 0]]时,你是显式创建了两个完全独立的子列表,它们在内存中是不同的对象,修改其中一个自然不会影响另一个。

正确创建86400条独立子列表的方法

要生成86400个独立的[Count, Angle, Speed]初始列表,用列表推导式是最稳妥的方式:

a = [[0, 0, 0] for _ in range(86400)]

这个写法会在每次循环中新建一个[0,0,0]子列表,确保每个子列表都是内存中的独立对象,修改任意一个都不会影响其他条目。

内容的提问来源于stack exchange,提问作者Peter_Brown_USA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:25:17