1、可变类型
1.1 含义
存储空间保存的数据允许被修改,这种数据就是可变类型数据。
1.2 常见的可变类型
(1)list 列表
# 示例 li = [1, 2, 3] print(id(li)) # 修改操作 li.append(4) print(id(li)) print(li)
(2)dict 字典
# 示例
dic = {"a": 1, "b": 5, "c": 3}
print(id(dic))
dic['b'] = 2
print(id(dic))
print(dic)(3)set 集合
# 示例
s = {1, 2, 3, 4}
print(id(s))
s.remove(4)
print(id(s))
print(s)变量对应的值可以变化,但是内存地址保持不变,这就是可变类型数据
2、不可变类型
2.1 含义
存储空间保存的数据不允许被修改,这种数据就是不可变类型数据。
2.2 常见的不可变类型
(1) 数值类型:int 整型 float 浮点型 bool 布尔型 complex 复数型
# 示例 num = 10 print(id(num)) num = 15 print(id(num)) print(num)
(2)str 字符串
# 示例
st = "xiaobai"
print(id(st))
st = st.replace("b", "B")
print(id(st))
print(st)(3)tuple 元组
# 示例 tup = (1, 2, 3) print(id(tup)) # 元组不支持修改操作 tup = (1, 2, 3, 4) print(tup) print(id(tup))
一旦变量的值发生变化,就会触发新值的创建,并分配新的内存地址来存储这个新的值。变量的值变化,内存地址跟着一起变化,这就是不可变类型的数据
注意:如果原对象是不可变类型,那么深浅拷贝在行为上是没有区别的,因为不可变对象不能被修改。所以对于不可变类型而言,深浅拷贝无意义。
著作权归文章作者所有。 未经作者允许禁止转载!