亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python中復制函數之間的區別

python中復制函數之間的區別

收到一只叮咚 2021-03-05 11:07:58
python中的copy.copy和copy.deepcopy函數之間有什么區別?>>> copy.deepcopy(li)[1, 2, 3, 4]>>> copy.copy(li)[1, 2, 3, 4]兩者都做同樣的事情,誰能告訴他們這些功能具體是做什么的
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

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


查看完整回答
反對 回復 2021-03-29
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

copy.copy與copy.deepcopy執行深層復制相反,執行淺層復制。


在考慮時:


li = [1, 2, 3, 4]

您不會注意到任何區別,因為您正在復制不可變的對象,但是請考慮:


>>> import copy

>>> x = copy.copy(li)

>>> x

[[1, 2], [3, 4]]

>>> x[0][0] = 9

>>> li

[[9, 2], [3, 4]]

由于淺表副本僅復制列表中每個引用的副本,因此操作這些復制的引用仍會影響原始列表。


但是下面的代碼:


>>> x.append(1)

將不會對原始列表產生影響。


查看完整回答
反對 回復 2021-03-29
  • 2 回答
  • 0 關注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號