Skip to main content
 首页 » 编程设计

python之python中列表的可变性

2025年05月04日27EasonJim

示例一:改变已经附加到b的值改变了原始列表l中的值

>>> l = [1 , 2, 3] 
>>> b = [] 
>>> b.append(l) 
>>> b[0].append(4) 
>>> b 
[[1, 2, 3, 4]] 
>>> l 
[1, 2, 3, 4] 

例2:在ans后面附加l1,然后修改l1的值。但是,ans 中的值保持不变。

>>> l1 = [1, 2, 3] 
>>> ans = [] 
>>> ans.append(l1) 
>>> ans 
[[1, 2, 3]] 
>>> l1 = [2, 3, 4] 
>>> ans 
[[1, 2, 3]] 

我似乎遗漏了一些关于列表可变性的基本要点。有人可以指出吗?

请您参考如下方法:

你没有改变 l1。您正在将一个新对象分配给相同的名称,这使得该名称指向一个新对象。您正在移动标签,而不是修改对象。 l1 过去指向的列表的唯一剩余引用现在是 ans[0]。