码迷,mamicode.com
首页 > 编程语言 > 详细

Python 列表浅拷贝与深拷贝

时间:2017-11-12 13:32:59      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:http   epc   idt   width   lis   对象   nbsp   使用   port   

浅拷贝 shallow copy 和深拷贝 deep copy

list.copy() 浅拷贝:复制此列表(只复制一层,不会复制深层对象) 等同于 L[:]

举例:

浅拷贝:

  a = [1.1, 2.2]   # a = [1.1, 2.2]
  b = [1, 2, a]   # b = [1, 2, [1.1, 2.2]]
  c = b.copy()  # c = [1, 2, [1.1, 2,2]]
  a[0] = 1.123
  b =  [1, 2, [1.123, 2.2]]
  c =  [1, 2, [1.123, 2.2]]

内存中的指向是这样的,如下图:

技术分享

深拷贝:
  注:使用deepcoyp前需要导入copy模块。
  Import copy # 导入copy模块
  a = [1.1, 2.2]   # a = [1.1, 2.2]
  b = [1, 2, a]   # b = [1, 2, [1.1, 2.2]]
  c = b.deepcopy()  # c = [1, 2, [1.1, 2,2]]
  a[0] = 1.123
  b =  [1, 2, [1.123, 2.2]]
  c =  [1, 2, [1.1, 2.2]]

内存中的指向是这样的,如下图:

 

技术分享

 

Python 列表浅拷贝与深拷贝

标签:http   epc   idt   width   lis   对象   nbsp   使用   port   

原文地址:http://www.cnblogs.com/laolibk/p/7821369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!