python深拷贝、浅拷贝。
浅拷贝
拷贝内存地址,拷贝出来的值指向同一个内存地址(拷贝了引用,并没有拷贝内容)
深拷贝
深拷贝是对于一个对象所有层次的拷贝(递归)
a = [11,22,33] b = a #浅拷贝 指向同一个内存地址。 print(id(a) == id(b)) #True print(id(a)) print(id(b)) import copy #深拷贝 内容相同,但重新开辟一个新内存,内存地址不同。 c = a.copy() print(id(a) == id(c)) #False print(id(a)) print(id(c))
import copy a = [11, 22, 33] b = [55, 44] c = [a, b] print(c,"--->c") # [[11, 22, 33], [55, 44]] --->c a.append(66) print(c,"--->c") #[[11, 22, 33, 66], [55, 44]] --->c d = copy.deepcopy(c) print(d,"--->d") #[[11, 22, 33, 66], [55, 44]] --->d b.append(666) print(d,"--->d") #[[11, 22, 33, 66], [55, 44]] --->d