gpt4 book ai didi

python 元组是不可变的 - 那么为什么我可以向它添加元素

转载 作者:太空狗 更新时间:2023-10-29 22:00:24 25 4
gpt4 key购买 nike

我已经使用 Python 一段时间了,今天在阅读以下代码片段时:

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

我问自己一个问题:为什么 python 元组是不可变的并且我可以在它们上使用 += 运算符(或者,更一般地说,为什么我可以修改元组)?我无法回答自己。

我明白了不变性的概念,而且,尽管它们不像列表那样流行,但元组在 Python 中很有用。但是不可变和能够修改长度对我来说似乎是矛盾的......

最佳答案

5 也是不可变的。当你有一个不可变的数据结构时,a += b 等同于 a = a + b,因此会创建一个新的数字、元组或其他任何内容。

当对可变结构执行此操作时,结构将更改

例子:

>>> tup = (1, 2, 3)
>>> id(tup)
140153476307856
>>> tup += (4, 5)
>>> id(tup)
140153479825840

看看 id 是如何变化的?这意味着它是一个不同的对象。

现在有一个列表,它是可变的:

>>> lst = [1, 2, 3]
>>> id(lst)
140153476247704
>>> lst += [4, 5]
>>> id(lst)
140153476247704

id 表示相同。

关于python 元组是不可变的 - 那么为什么我可以向它添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19015698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com