关于python中的copy模块中的copy和deepcopy

关于python中的copy模块中的copy和deepcopy,第1张

copy仅拷贝对象本身,而不对中的子对象进行拷贝,故对子对象进行修改也会随着修改。

子对象就是列表中的列表(套娃行为)

deepcopy是真正意义上的复制,即从新开辟一片空间。我们经常说的复制实际上就是deepcopy.

代码展示:

import copy
a = [1,2,3,[4,5],6]
a = b
//注意list的“=" 赋值:这种语法实际上是将新变量关联到旧变量的列表中,即两个变量名都指向同一个列表,对任一变量进行 *** 作都会影响变量
c = copy.copy(a)
d = deepcopy.copy(a)

进行插入 *** 作

a = a.append(7)

则输出的a:[1,2,3,[4,5],6,7]

b: [1,2,3,[4,5],6,7]

c : [1,2,3,[4,5],6]

d: [1,2,3,[4,5],6]

假如对a里面的子对象进行修改:

a = a[4].append(8)

则输出的a:[1,2,3,[4,5,8],6,7]

b: [1,2,3,[4,5,8],6,7]

c : [1,2,3,[4,5,8],6]

d: [1,2,3,[4,5],6]

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/868252.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存