2 回答

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
>>> import copy
>>> L = [[1,2,3]]
>>> A = copy.copy(L)
>>> A[0].append(4)
>>> A
[[1, 2, 3, 4]]
>>> L
[[1, 2, 3, 4]]
>>> L = [[1,2,3]]
>>> A = copy.deepcopy(L)
>>> A[0].append(4)
>>> A
[[1, 2, 3, 4]]
>>> L
[[1, 2, 3]]

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
copy.copy與copy.deepcopy執(zhí)行深層復(fù)制相反,執(zhí)行淺層復(fù)制。
在考慮時(shí):
li = [1, 2, 3, 4]
您不會(huì)注意到任何區(qū)別,因?yàn)槟趶?fù)制不可變的對(duì)象,但是請(qǐng)考慮:
>>> import copy
>>> x = copy.copy(li)
>>> x
[[1, 2], [3, 4]]
>>> x[0][0] = 9
>>> li
[[9, 2], [3, 4]]
由于淺表副本僅復(fù)制列表中每個(gè)引用的副本,因此操作這些復(fù)制的引用仍會(huì)影響原始列表。
但是下面的代碼:
>>> x.append(1)
將不會(huì)對(duì)原始列表產(chǎn)生影響。
添加回答
舉報(bào)