也許我不明白的淺拷貝的定義...但我很困惑:蟒蛇list.copy淺VS深拷貝
從文檔:
其中「s」是一個列表(但相同的問題分別適用於字典)。
「s.copy()|創建s的淺拷貝(同S [:])」
除了我以爲s[:]
是深拷貝。例如,請參見this stack overflow answer關於如何複製列表(不指向原始版本)。並使用list1.copy()似乎做了深刻的副本以及又名相同的行爲[:]
l1 = [1,2,3,4]
l2 = l1[:]
l3 = l1.copy()
l2.append(5)
l3[0] = 99
print(l1)
print(l2)
print(l3)
>> [1,2,3,4]
>> [1,2,3,4,5]
>> [99,2,3,4]
這樣看來,l1
,l2
和l3
都是獨立對象。我錯過了什麼?
......如果我改變L1至號碼清單列表我仍然得到同樣的事情 - l1.copy()似乎創建一個單獨的對象 – RSHAP
號這些都是淺拷貝。在這個問題上的區別是單純的任務(根本不復制)和複製(淺層次)之間的差別。 –
@ juanpa.arrivillaga,Ahhhh好的,我看到這個答案。 – RSHAP