0
我感到困惑與下面的代碼Python的共享引用
L1 = [3,6,9,12]
L2 = [L1]*3
L3=[list(L1)]*3
L4 = [list(L1) for i in range(3)]
L1[0]=100
L2
[[100, 6, 9, 12], [100, 6, 9, 12], [100, 6, 9, 12]]
L3
[[3, 6, 9, 12], [3, 6, 9, 12], [3, 6, 9, 12]]
L4
[[3, 6, 9, 12], [3, 6, 9, 12], [3, 6, 9, 12]]
爲什麼L3
和L4
不會受代碼第五行?這意味着只有L2
與L1
共享對象。有人可以解釋爲什麼L3
和L4
不創建共享對象,只有L2
呢?
特別是它淺 - 複製列表;改變整個元素將不會反映這些改變,但會改變意志內的任何對象。 –