python开发之路---第二天笔记

深浅copy

浅拷贝是指把存放变量的地址值传给被赋值,最后两个变量引用了同一份地址

l1 = [1,2,3,[11,22,33]]
l2 = l1.copy()
print(l2) #[1,2,3,[11,22,33]]
l2[3][2]='aaa'
print(l1) #[1, 2, 3, [11, 22, 'aaa']]
print(l2) #[1, 2, 3, [11, 22, 'aaa']]
l1[0]= 0
print(l1) #[0, 2, 3, [11, 22, 'aaa']]
print(l2) #[1, 2, 3, [11, 22, 'aaa']]
print(id(l1)==id(l2)) #Flase

深拷贝是指被赋值的变量开辟了另一块地址用来存放要赋值的变量的值(内容)。在python中引用copy模块,copy模块中有deepcopy()方法,调用它完成变量的深copy

import copy

l1  =  [ 1 2 3 , [ 11 22 33 ]]
# l2 = copy.copy(l1)  浅拷贝
l2  =  copy.deepcopy(l1)
print (l1, '>>>' ,l2)
l2[ 3 ][ 0 =  1111
print (l1, ">>>" ,l2)
 
 

猜你喜欢

转载自www.cnblogs.com/LoveElsa/p/10223234.html