python 基础系列06-深浅拷贝

#python 基础系列06-深浅拷贝

#引入sys库
import sys
import copy

if __name__ == '__main__':
    a,b,c =1,2,3
    list1 = [1,2,3,4,5]
    list2 = [1,2,3,4,5]

    list2 = list1
    list1[0] ='a'
    print(list1,list2) #['a', 2, 3, 4, 5] ['a', 2, 3, 4, 5]

    #实现拷贝,而不是内存指向相同的地址

    list3 = [1, 2, 3, 4, 5]
    list4 = [1, 2, 3, 4, 5]
    list4 = list3[:]
    list3[0] = 'xxx'
    print(list3,list4) #['xxx', 2, 3, 4, 5] [1, 2, 3, 4, 5]

    #但是存在浅拷贝,嵌套数据没有还是会跟着改变

    list6 = [1, 2, 3, 4,[7,8]]
    list7 = [1, 2, 3, 4,[7,8]]
    list7 = list6[:]
    list6[0] = 'bbb'
    list6[4][0] = 'zzzz'
    print(list6,list7)  #['bbb', 2, 3, 4, ['zzzz', 8]] [1, 2, 3, 4, ['zzzz', 8]]

    #实现全部拷贝,引入copy模块
    s1 = [1, 2, 3, 4,[7,8]]
    s2 = [1, 2, 3, 4,[7,8]]
    s2 = copy.deepcopy(s1)
    s1[-1][0] ='vvvv'
    s1[0] ='12a'
    print(s2) #[1, 2, 3, 4, [7, 8]]

猜你喜欢

转载自blog.csdn.net/qq_31866793/article/details/104351863