深拷貝、淺拷貝、賦值介紹
阿新 • • 發佈:2018-12-10
1.賦值,深拷貝,淺拷貝: 賦值是多個物件指向同一個記憶體空間,多個物件共同操作同一個資料 拷貝是對記憶體資料的複製,目的是能夠單獨的修改資料 1.賦值: 物件之間的賦值本質上是物件之間的引用傳遞,也就是多個物件指向同一個記憶體空間 2.淺拷貝: 1.實現步驟: 1.匯入copy模組 2.copy.copy(obj)--obj:要拷貝的物件 2.小結:淺拷貝是對物件的第一層(頂層)拷貝 3. 深拷貝 1.深拷貝實現步驟: 1. 匯入copy模組 2. copy.deepcopy(obj) - obj: 要拷貝的物件 2.小結: 深拷貝是物件的所有層的拷貝(遞迴拷貝) 4. 不可變型別(元組,數字,字串)的拷貝 1> 如果在多層巢狀中都是不可變型別 淺拷貝與深拷貝都是相同的 ,都不會單獨開闢記憶體空間,而是引用原來的記憶體空間 2> 如果頂層是不可變型別,但內部元素有嵌入可變型別 淺拷貝還是不會開闢新的記憶體空間,而是引用原來的記憶體空間 深拷貝 會拷貝物件的所有層 5. 其他拷貝方式(列表切片、字典中的copy) 列表切片、字典中的copy都採用的是淺拷貝, python中記憶體資料的拷貝預設是淺拷貝 面試題: 如何在記憶體中複製一個數據 淺拷貝或者深拷貝 切片操作與字典中的拷貝屬於哪種拷貝: 淺拷貝