list1 = [11,12,13]
#引用,本质上就是地址的传递,与浅拷贝不一样
list2 = list1
print(list1 == list2) #==表示数值是否相同
print(list1 is list2) #is表示地址是否相同
print(‘修改list1’)
list1[0] = 0
print(“展示修改之后的list2”,list2)
##浅拷贝
##浅拷贝中地址不同,数值相同
list2 = list1.copy()
print(list1==list2) #数值依旧相同
print(list1 is list2) #地址不同了
print(id(list1)) #id 用来查看地址
print(id(list2))
##深拷贝,需要导包copy。deepcopy
from copy import deepcopy
list2 = deepcopy(list1)
print(list1==list2) #数值依旧相同
print(list1 is list2) #地址不同了
print(id(list1)) #id 用来查看地址
print(id(list2))
#当需要拷贝的东西只有一层的时候深拷贝与浅拷贝性质相同
#当需要拷贝的文件中嵌套了别的文件,深拷贝不受影响。浅拷贝受影响
#比如列表嵌套列表
list1 = [[11,22,33],12,13]
浅拷贝,浅拷贝受影响
list2 = list1.copy()
list1[0][0] = 0
print(‘修改之后的list1’,list1)
print(‘修改之后的list2’,list2)
‘’’
修改之后的list1 [[0, 22, 33], 12, 13] #其中的12,13两个数为小整数池
修改之后的list2 [[0, 22, 33], 12, 13]
‘’’
深拷贝,不受影响
list2 = deepcopy(list1)
list1[0][0] = 0
print(‘修改之后的list1’,list1)
print(‘修改之后的list2’,list2)
‘’’
修改之后的list1 [[0, 22, 33], 12, 13]
修改之后的list2 [[11, 22, 33], 12, 13]
‘’’
##深拷贝中将内嵌的列表也拷贝了一个地址。所以不受影响
#深拷贝也叫递归拷贝