自學Python:python中的賦值、拷貝的概念與用法

賦值

賦值只是複製了對象的引用,賦值後兩個對象指向同一個內存空間,不會開闢新的內存空間,原對象發生改變的話,賦值後的對象也會隨之變化。
在這裏插入圖片描述
我們可以使用id()來獲取複製前後兩個對象的內存地址
在這裏插入圖片描述
可以看到兩個對象的內存地址是相同的,即指向同一內存空間,其中一個對象的內容發生變化,另外一個也會隨之改變
在這裏插入圖片描述

拷貝

拷貝的概念是在原對象的基礎上創建一個新對象,如果你想對列表做出某些修改,但同時還想保持原來的列表,這時,就可以使用拷貝,拷貝分爲淺拷貝與深拷貝,兩者在使用上有一定的區別
在這裏插入圖片描述

淺拷貝

1、淺拷貝有三種方法可以實現,分別是切片方法、工廠函數、copy模塊中的copy函數

切片方法:lst2 = lst1[:]
工廠函數:lst3 = list(lst1)
copy模塊:lst4 = copy.copy(lst1)

在這裏插入圖片描述

2、淺拷貝中拷貝原對象的一層,就是說如果一個列表中嵌套了另外一個列表,使用淺拷貝得到一個新的列表後,如果列表中嵌套的列表發生變化,那麼另外一個列表也會隨之變化,使用id()查看拷貝前後兩個列表中嵌套列表的內存地址
在這裏插入圖片描述
操作一下看看:
在這裏插入圖片描述

深拷貝

深拷貝只有一種形式,那就是使用copy模塊的deepcopy函數,和淺拷貝對應,深拷貝拷貝了對象的所有元素,包括多層嵌套的元素,深拷貝拷貝出來的對象是一個全新的對象,不再與原來的對象有任何關聯。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章