0
点赞
收藏
分享

微信扫一扫

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

小贴贴纸happy 2022-05-02 阅读 94
python

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]

举报

相关推荐

0 条评论