数据类型总结
按存值个数区分
存值个数 数据类型
单个值 数字、字符串
多个值 列表、元组、字典、集合
按可变和不可变区分
可变or不可变 数据类型
可变 列表、字典、集合
不可变 数字,字符串,元组
有序无序区分
有序or无序 数据类型
有序(可按索引取值) 字符串,列表,元组
无序 字典、集合
拷贝、浅拷贝和深拷贝
拷贝、浅拷贝和深拷贝(只针对可变类型)
拷贝
拷贝就是赋值,(如果L2是L1的拷贝对象),l1发生改变,则l2也会发生改变,因为l1是可变类型,可变类型
lis = [1,2,3,4]
lis2 = lis # 最基本的拷贝
lis.append(5)
print(lis)
print(lis2)
浅拷贝
浅拷贝是指把存放变量的地址传给赋值,两个变量引用了同一份地址。如果L2是L1的浅拷贝对象,L1内部的不可变对象发生改变(即重新开辟了一块内存空间),则L2不变,如果L1内部的可变对象发生改变(变量值发生变化,但是都在同一块内存地址中),则L2随着改变。
深拷贝
深拷贝就是被赋值的变量在内存中开辟了另一块内存空间来存放要赋值的变量的值,即与原对象值相同,但是地址不同。如果L2是L1的深拷贝对象,L1内部的不可变对象发生改,则L2不变;如果L1内部的可变对象发生改变,L2也不会改变。