[关闭]
@chengweihuang 2019-04-19T02:04:25.000000Z 字数 755 阅读 511

深浅拷贝

每日总结


复制运算

  1. l1=[1,2,3]
  2. l2=l1
  3. l1.append(4)
  4. print(l2)
  1. dic = {'name':'aid'}
  2. dic1 = dic
  3. dic['age'] = 18
  4. print(dic)
  5. print(dic1)
  1. s= 'aid'
  2. s1 = s
  3. s2 = s.replace('a','b')
  4. print(s)
  5. print(s1)
  6. print(s2)

copy()

  1. l1 = [1,2,3,4]
  2. l2 = l1.copy()
  3. l1.append('aid')
  4. print(l1,id(l1))
  5. print(l2,id(l2))
  1. l1 = [1,[22,33,44],3,4,]
  2. l2 = l1.copy()
  3. l1[1].append('55')
  4. print(l1,id(l1),id(l1[1]))
  5. print(l2,id(l2),id(l2[1]))
  6. # 第一层都是独立的的。从第二层开始都是是公用的,改一个都会变。

copy.deepcopy()

  1. import copy # 先引入模块
  2. l1 = [1,[22,33,44],3,4,]
  3. l2 = copy.deepcopy(l1)
  4. print(id(l1))
  5. print(id(l2))
  6. # 改变第一层
  7. l1[0] = 111
  8. print(l1) # [111, [22, 33, 44], 3, 4]
  9. print(l2) # [1, [22, 33, 44], 3, 4]
  10. # 改变第二层
  11. l1[1].append('aid')
  12. print(l1) # [111, [22, 33, 44, 'aid'], 3, 4]
  13. print(l2) # [1, [22, 33, 44], 3, 4]
  14. a=[1,2,3]
  15. b=a
  16. a=[4,5,6]
  17. print(a)
  18. print(b)
  19. def addd(x):
  20. x.append(1)
  21. print(id(x))
  22. x = x + [1]
  23. print(id(x))
  24. #x.append(1)
  25. #print(id(x))
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注