Python的拷贝
- 浅拷贝
from copy import *
# 无论深浅拷贝都针对可变类型
num1 = 1
num2 = copy(num1)
print(id(num1),id(num2))
# 数字。字符串,元组,都没有开辟新空间,都是指向同一个引用地址
list1 = [1,3,4,[1,2]]
list2 = copy(list1)
print(id(list1),id(list2))
list1[3].append(5)
print(list1)
print(list2)
# 列表,字典,集合 都会开辟新空间,也就是一个新的引用
- 深拷贝
from copy import *
# 无论深浅拷贝都针对可变类型
num1 = 1
num2 = deepcopy(num1)
print(id(num1),id(num2))
# 数字。字符串,元组,都没有开辟新空间,都是指向同一个引用地址
list1 = [1,3,4,[1,2]]
list2 = deepcopy(list1)
print(id(list1),id(list2))
list1[3].append(5)
print(list1)
print(list2)
# 列表,字典,集合 都会开辟新空间,也就是一个新的引用
浅拷贝后的对象,如果原始对象改变后,浅拷贝对象也会改变
深拷贝后的对象,如果原始对象改变后,深拷贝对象不会改变