python-浅拷贝,深拷贝

#浅拷贝,深拷贝

list1=[10,20,[30,40],50]

list2=list1#普通的赋值,其实list1和list2指向的是同一个内存

list3=list1[:]#切片可以生成新的列表,但是对于子列表而言,仍然指向的同一个地址

import copy

list4=copy.copy(list1)# #浅拷贝,等价于切片[:]

list5=copy.deepcopy(list1)#深拷贝

# list5[2][1]=11

list2[1]=11

print(list5)#[10, 20, [30, 40], 50]

print(list1)#[10, 11, [30, 40], 50]

print(list3)#[10, 20, [30, 40], 50]

list2[2][1]=11

print(list5)#[10, 20, [30, 40], 50]

print(list1)#[10, 11, [30, 11], 50]

print(list3)#[10, 20, [30, 11], 50]

你可能感兴趣的:(python-浅拷贝,深拷贝)