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

Python列表append同一对象后修改元素引发联动问题咨询

列表中子列表修改同步的原因分析

问题场景

向列表中添加多个子列表后,修改其中一个子列表的值,所有子列表都会跟着变化。

代码示例

data=[]

def data_extend(multiples):    
    a=["NV"]*2
    for i in range(multiples):
        data.append(a)
        
data_extend(2)
print(data)

data[0][1]=5
print(data)

实际输出

[['NV', 'NV'], ['NV', 'NV']]
[['NV', 5], ['NV', 5]]

预期输出

[['NV', 'NV'], ['NV', 'NV']]
[['NV', 5], ['NV', 'NV']]

原因解析

核心问题是你在循环里反复添加的是同一个列表对象的引用:

  • 执行a=["NV"]*2时,内存中生成了一个唯一的列表对象a;
  • 循环里的data.append(a)并没有创建新的列表,只是把这个a的内存地址重复存入data;
  • data里的两个元素本质指向同一个列表,修改其中任意一个,都是在操作内存中那个唯一的列表对象,所以所有子列表看起来会同步变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:55:20