A = [1,2,3]
B = A
B[0] = A[0]*3
應該給:
B == [3,2,3]
True
A == [1,2,3]
True
,但它確實:
B == [3,2,3]
A == [3,2,3]
我怎麼B中複製一個比沒有保持連接到b? 感謝您的幫助。
A = [1,2,3]
B = A
B[0] = A[0]*3
應該給:
B == [3,2,3]
True
A == [1,2,3]
True
,但它確實:
B == [3,2,3]
A == [3,2,3]
我怎麼B中複製一個比沒有保持連接到b? 感謝您的幫助。
這是因爲你只是指向B的引用,根本不做任何複製。相反,請執行以下操作以實際創建副本。
A = [1,2,3]
B = A[:]
這將工作,如果沒有引用變量。如果你不希望這樣的行爲,然後使用DEEP_COPY方法如下
B = copy.deepcopy(A)
然後如果更改,也不會改變B B = A
不,OP根本沒有複製:'B'和'A'指的是** ** **列表。人們可以通過製作淺拷貝來解決這個問題。 –
謝謝 - 我修改了它。對原始錯誤抱歉 –
'[:]的''而不是乙= A'?這使得一個淺拷貝。 –
你可以做B = A.copy()返回一個淺拷貝 – bvmcode
你也可以使用這個B = [x for x in A] – Ashish