深浅拷贝

发布时间 2023-12-06 18:46:21作者: Formerly0^0

深浅拷贝

1.浅拷贝

  • 浅拷贝是指创建一个新对象,并将原始对象的元素复制到新对象中

    # num_list = [1, 2, [3, 4]]
    # # 使用浅拷贝创建拷贝对象
    # copy_list = copy.copy(num_list)
    #
    # # 修改原对象中的可变数据类型
    # num_list[2].append(5)
    #
    # print("原对象:", num_list)		# [1,2,[3,4,5]]
    # print("拷贝对象:", copy_lsit)# [1,2,[3,4,5]]
    # 两个列表还是引用同一个内存地址,当num_list改变时,copy_list也随之改变
    
    

2.深拷贝

  • 深拷贝是创建了一个新的对象,该对象与原对象完全独立
  • 拷贝后我们对新对象和老对象进行内容修改,完全不会互相影响,因为他们各自独立
# num_list = [1, 2, [3, 4]]
# # 使用深拷贝创建拷贝对象
# copy_list = copy.deepcopy(num_list)
#
# # 修改原对象中的可变数据类型
# num_list[2].append(5)

# print("原对象:", num_list)		# [1,2,[3,4,5]] 
# print("拷贝对象:", copy_lsit)# [1,2,[3,4]]
# 深拷贝后copy_list申请了一块新的内存地址存放值,原列表更改和新列表没有关系,内存指向不一样了