如果可以添加元组 (a += (3,4)),它怎么会是不可变的呢?

2023-12-12

>>> 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)。如果我们检查id of a操作前和操作后,我们可以看到差异:

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

有了清单,+= calls .extend()在列表中,这会就地更改它。

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

请注意,id of b手术后不会改变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果可以添加元组 (a += (3,4)),它怎么会是不可变的呢? 的相关文章

随机推荐