拷贝大神

it2022-05-05  179

拷贝

赋值拷贝又称引用拷贝 本质创建一个指向被拷贝列表的引用,他们使用的是同一块内存区域,因为无论更改其中任何一个变量 我们被拷贝的变量也会跟着改变。

浅拷贝:浅拷贝是一维内存拷贝【不完全拷贝】,对于多维的列表,还会有内存公用的情况。

深拷贝:完全内存拷贝,将多维列表中的内容递归的复制一遍,重新存储到一块新的内存空间 因此在深拷贝不会出现内存公用的情况。

list1 = [1,2,3,4] list2 = [1,2,3,4,[1,2,3]] # list6 = copy.deepcopy(list2) # print(id(list2)) # print(id(list6)) # list6[-1][-1] = "haha" # print(list6) # print(list2) # print(id(list6[-1])) # print(id(list2[-1])) # list3 = list1 # print(id(list1)) # print(id(list2)) # print(id(list3)) # list3[-1] = "hello" # print(list1) # print(list3) list4 = list1.copy() # print(list1) # print(list4) # print(id(list1)) # print(id(list4)) # list4[-1] = "hello" # print(list1) # print(list4) list5 = list2.copy() print(id(list2)) print(id(list5)) list5[-1][-1] = "good" print(list2) print(list5) print(id(list2)) print(id(list5)) print(id(list2[-1])) print(id(list5[-1]))

最新回复(0)