Skip to main content
 首页 » 编程设计

python之如果可以向元组添加 (a += (3,4)),那么元组如何不可变

2025年05月04日13落叶无声

>>> a = (1,2) 
>>> a += (3,4) 
>>> a 
(1, 2, 3, 4) 
>>>  

还有一个列表:

>>> b = [1,2] 
>>> b += [3,4] 
>>> b 
[1, 2, 3, 4] 
>>>  

由于元组是不可变的而列表是可变的,我们如何解释这种行为?

请您参考如下方法:

在这个例子中,你并没有改变实际的元组,你只是改变了变量 a 指向的元组。在此示例中,a += (3, 4) 与 a = a + (3, 4) 相同。如果我们在操作前后检查a 的id,我们可以看到不同之处:

>>> a = (1, 2) 
>>> id(a) 
60516360 
>>> a += (3, 4) 
>>> id(a) 
61179528 

对于列表,+= 调用列表上的 .extend(),这会就地更改它。

>>> b = [1, 2] 
>>> id(b) 
62480328 
>>> b += [3, 4] 
>>> id(b) 
62480328 

注意 b 的 id 在操作后没有改变。