python当中的赋值、浅拷贝、深拷贝有什么区别

简单总结:
#赋值:不仅仅值完全一样,而且内存中指向同一地址
#深拷贝就是恩断义绝,不再有任何联系
#浅拷贝是藕断丝连,列表的第一级元素不会因为改变而改变,但是原始列表和浅拷贝对象的子列表仍然会指向同一内存地址,修改其中任何一个必然后引起另外一个的变化,完全切片相当于浅拷贝
improt copy
def cp():
    a = [1,2,[3]]
    b = copy.copy(a)
    c = a
    d = a[:]
    a[-1].append(4)
    print('a:',a) #[1, 2, [3, 4]]
    print('b:',b) #[1, 2, [3, 4]]
    print('c:',c) #[1, 2, [3, 4]]
    print(a is b) #False
    print(a is c) #True
    print(a is d) #False
    print(c is d) #False
if __name__ == '__main__':
   cp()

猜你喜欢

转载自blog.csdn.net/sasibingdu/article/details/121680431