Python的拷贝

  1. 浅拷贝
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)
# 列表,字典,集合 都会开辟新空间,也就是一个新的引用

  1. 深拷贝
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)
# 列表,字典,集合 都会开辟新空间,也就是一个新的引用

浅拷贝后的对象,如果原始对象改变后,浅拷贝对象也会改变
深拷贝后的对象,如果原始对象改变后,深拷贝对象不会改变

posted @ 2021-03-10 11:04  code-G  阅读(94)  评论(0编辑  收藏  举报