python 中的copy 拷貝

2021-10-07 02:44:34 字數 731 閱讀 4686

import copy

l1 = [1, 2, 3]

l2 = l1

print(l1 is l2)

l1 = [1, 2, 3]

l2 = list(l1)

print(l1 is l2)

l1 = [1, 2, 3]

l2 = copy.copy(l1)

print(l1 is l2)

#結果true

false

false

l2 = l1 表示,讓變數 l2 也同時指向 l1 這個物件。這裡要注意,python 裡的物件可以被多個變數所指向或引用。

list相當於copy

在看看元組: tuple

import copy

t1 = (1, 2, 3)

t2 = t1

print(t1 is t2)

t1 = (1, 2, 3)

t2 = tuple(t1)

print(t1 is t2)

t1 = (1, 2, 3)

t2 = copy.copy(t1)

print(t1 is t2)

#結果true

true

true

個人理解:

list可變,copy的時候要建立新物件

tuple不可變,copy就沒必要建立新物件(節省記憶體)

python 字典中的copy函式的淺拷貝問題

python淺拷貝與深拷貝 淺拷貝是指拷貝的只是原物件元素的引用,換句話說,淺拷貝產生的物件本身是新的,但是它的內容不是新的,只是對原物件的乙個引用。深拷貝是複製乙個內容而不是簡單的複製引用而已 換句話說 有指標的情況下,淺拷貝只是增加了乙個指標指向已經存在的記憶體,而深拷貝就是增加乙個指標並且申請...

python基礎 深淺拷貝copy

拷貝是音譯的詞,其實他是從copy這個英文單詞音譯過來的,那什麼是copy?copy其實就是複製乙份,也就是所謂的抄乙份。深淺copy其實就是完全複製乙份,和部分複製乙份的意思。1.賦值運算 1 l1 1,2,3,barry alex 2 l2 l1 34 l1 0 111 5 print l1 1...

細說python中的深 淺拷貝與copy模組

賦值 資料完全共享 賦值是在記憶體中指向同乙個物件,如果是可變 mutable 型別,比如列表,修改其中乙個,另乙個必定改變 如果是不可變型別 immutable 比如字串,修改了其中乙個,另乙個並不會變 a 123 b aid a id b a 1 print a 為1 print b 為123 ...