深拷贝和浅拷贝
只有import copy 的 copy.deepcopy才是深拷贝
一个题目:要打印出列表里的偶数
l = [1,1,2,3,4,5,6,7,8,9]
l2 = l.copy() #也是浅拷贝
for i in l:
if i % 2 !=0 :
l2.remove(i)
print(l)
print(l2)
'''
如果直接在列表里面去remove数据,会下标混乱,造成错误
所以要copy一个列表来remove
如果直接l2 = l,那么l和l2所指定的地址是同一个
'''
深拷贝和浅拷贝
import copy
l = [1,1,2,3,4,5,6,7,8,['a','b','c']]
l2 = l.copy() #浅拷贝-内存地址内层的['a','b','c']没有变
l3 = l #浅拷贝-内存地址不变
l4 = copy.deepcopy(l) #深拷贝
l[-1][0] = 'A'
print(l2) #跟随l一起改变了 浅拷贝
print(l3)
print(l4)