Python可变类型和不可变类型

188 阅读1分钟

1. 标准数据类型

共六个

不可变数据(3 个)

Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个)

List(列表)、Dictionary(字典)、Set(集合)。

2. 注意点

当进行修改操作时,可变类型传递的是内存中的地址。也就是说,直接修改内存中的值,并没有开辟新的内存。
不可变类型被修改时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作。

考查可变与不可变类型的深浅拷贝

import copy

at = (1, 2)
al = [1, 2]

bt = copy.copy(at)
ct = copy.deepcopy(at)
print(id(at), id(bt), id(ct))
# 140212629476104 140212629476104 140212629476104

bl = copy.copy(al)
cl = copy.deepcopy(al)
print(id(al), id(bl), id(cl))
# 140212630232968 140212630233032 140212630237320