coker

浅copy

l1 = [\'张三\',\'男\',18]
l2 = l1.copy()
print(l1,id(l1))
print(l2,id(l2))

--console--
[\'张三\', \'男\', 18]  2001022374920
[\'张三\', \'男\', 18]  2001022917576

浅copy会在内存新开辟一个内存空间,存放这个copy的列表,但是列表中的内容还是之前对象的内存地址,所以l1和l2的id值不一样,但是存放的对象地址是一样的,指向的是内容对象的地址



深copy

import copy
l1 = [\'张三\',\'男\',[18]]
l2 = copy.deepcopy(l1)
print(l1,id(l1))
print(l2,id(l2))

--console--
[\'张三\', \'男\', [18]] 1476329349896
[\'张三\', \'男\', [18]] 1476329349960

深copy会在内存中新开辟内存空间,将原列表以及列表内可变数据类型重新创建一份,不可变数据类型则是沿用之前的


浅copy: list,dict 嵌套的可变的数据类型是同一个
深copy: list,dict 嵌套的可变的数据类型不是同一个

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-11-05
  • 2022-12-23
  • 2018-01-17
  • 2022-01-14
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-30
  • 2021-10-13
  • 2021-11-11
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
相关资源
相似解决方案