Python可变/不可变容器

时间:2012-11-02 00:45:53

标签: python immutability

以下容器在Python中是可变的还是不可变的?

  • 列表

  • 元组

  • 词典

3 个答案:

答案 0 :(得分:4)

列表,词典:Mutable

元组:不变的

答案 1 :(得分:3)

tuple - immutable

list- mutable

dictionary - mutable

答案 2 :(得分:3)

Mutable 表示变量的值可以在存储或引用变量的同一内存块本身中更改。

不可变表示当您尝试更改变量的值时,它会创建一个新的内存块并将新值存储在那里。

不变 - 字符串,元组,数字等 可变 - 列表,词典,类等

示例:

让我们考虑一个可变的List ......

A = [1,2,3] 假设列表'a'位于名为“A0XXX”的内存块中 现在,如果你想在列表中添加4,5 ...... B = [4,5] 追加他们两个 a + = b 现在a = [1,2,3,4,5] 因此,现在最终列表'a'也存储在相同的存储块“A0XXX”

由于列表是可变的,它存储在同一个内存块中。

如果它是不可变的,最终列表'a'将存储在其他一些内存块“B0XXX”中 因此,可变对象可以更改并存储在同一个内存块中,当您尝试对不可变对象执行相同操作时,会创建一个新的内存块来存储更改的值。