Python深浅复制

import copy

>>> a = [1,2,3,[1,2,3]]

>>>b = a          =  直接赋值,a, b指向同一个对象

>>>b

>>>[1,2,3,[1,2,3]]
>>> c = copy.copy(a)         copy.copy(),  浅复制,a, c指向不同的对象,但是他们的子对象还是指向同一个对象,在这里是 [1, 2, 3]指向同一个对象,一修改就都修改了
>>> c
[1, 2, 3, [1, 2, 3]]
>>> d = copy.deepcopy(a)        copy.deepcopy(), 深复制,a, d以及其子对象都完全独立,都指向不同的对象
>>> d
[1, 2, 3, [1, 2, 3]]
>>> a[0] = 4
>>> a[3].append(4)
>>> a
[4, 2, 3, [1, 2, 3, 4]]

>>> b
[4, 2, 3, [1, 2, 3, 4]]      = 赋值,a怎么变b就怎么变

>>> c
[1, 2, 3, [1, 2, 3, 4]]      copy.copy()浅复制, 只有子对象指向同一个对象,只有子对象才会跟着一起变
>>> d
[1, 2, 3, [1, 2, 3]]       copy.deepcopy()深复制, a , d以及子对象都完全不相关,互不影响

posted @ 2020-05-12 20:03  2020不在低调  阅读(146)  评论(0)    收藏  举报