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 ...