python引用和物件,淺拷貝和深拷貝

2021-08-30 02:41:42 字數 399 閱讀 8086

關鍵:

在python中的分為 可變資料物件(列表,字典) 和 不可變資料物件(整型,字串,浮點型,元祖)。

可變的意思是引用之間會相互影響,不可變則不會相互影響。

如果是可變物件的話就算是函式引數傳遞也會相互影響,即函式內部對物件的操作也會影響函式外部的

l = [1,2,3]

def func(t):

t[0] = 100

func(l)

print(l)

out: [100, 2, 3]
具體的:

(引用和物件的理解)

(淺拷貝和深拷貝)

拷貝python物件,淺拷貝和深拷貝

物件賦值實際上是簡單的物件引用。也就是說建立乙個物件然後賦值給另乙個變數的時候,python並沒有拷貝這個物件,而是拷貝了這個物件的引用。淺拷貝 淺拷貝的是物件本身,但是內容是原來物件的引用。拷貝物件本身是新的但是內容不是新的 拷貝物件的方式 來看 import copy a a b c 1,2,3...

python 引用,淺copy和深拷貝

l 1,2,3,4 g l g 1 3 上面這個方法是引用複製,因為g和l是同乙個東東,輸出結果是 g 1,2,3,3 l 1,2,3,3 如果想複製所有的生成乙個新的list,那麼使用下面的方法 g data for data in l 這樣就全部的值都copy 過來 現在你再g 1 5,g和l ...

python 引用,淺拷貝,深拷貝

引用 當物件是不可變型別的時候,int float double string tuple 純tuple 遇到 引用 問題時,雖然起初兩個變數指向同乙個記憶體位址,但是改變了其中乙個值,並不會影響另外乙個 會重新開闢記憶體位址 當物件是可變型別的時候,list dic,遇到 引用 問題,會一直共享一...