Python学习笔记(6)深浅拷贝

(1) a = b

 

      >>> a = 1

      >>> b = a
      >>> a
      1
      >>> b
      1
      >>> a = 2
      >>> a
      2
      >>> b
      1
      >>> a = [1,2,3]
      >>> a
      [1, 2, 3]
      >>> b
      1
      >>> b = a
      >>> b
      [1, 2, 3]
      >>> a[0] = 9999
      >>> a
      [9999, 2, 3]
      >>> b
      [9999, 2, 3]

      >>> a = 1

      >>> a
      1
      >>> b
      [9999, 2, 3]

 

(2) b = a.copy() 浅copy 只copy第一层

 

      >>> a = [[1,2,3],4,5,6]

      >>> a
      [[1, 2, 3], 4, 5, 6]
      >>> b = a.copy()
      >>> a
      [[1, 2, 3], 4, 5, 6]
      >>> b
      [[1, 2, 3], 4, 5, 6]
      >>> a[1] = 444
      >>> a
      [[1, 2, 3], 444, 5, 6]
      >>> b
      [[1, 2, 3], 4, 5, 6]
      >>> a[0][0] = 111
      >>> a
      [[111, 2, 3], 444, 5, 6]
      >>> b
      [[111, 2, 3], 4, 5, 6]

      >>> b[0][1] = 222
      >>> b
      [[111, 222, 3], 4, 5, 6]
      >>> a
      [[111, 222, 3], 444, 5, 6]

 

(3)深copy  a的改变不会影响b

 

      >>> import copy

      >>> a = [[1,2,3],4,5,6]
      >>> b = copy.deepcopy(a)
      >>> a
      [[1, 2, 3], 4, 5, 6]
      >>> b
      [[1, 2, 3], 4, 5, 6]
      >>> a[1] = 444
      >>> a
      [[1, 2, 3], 444, 5, 6]
      >>> b
      [[1, 2, 3], 4, 5, 6]
      >>> a[0][0] = 111
      >>> a
      [[111, 2, 3], 444, 5, 6]
      >>> b
      [[1, 2, 3], 4, 5, 6]

      

      

      

 

      

  

posted on 2018-04-11 13:55  童话与海  阅读(92)  评论(0)    收藏  举报

导航