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

Python中引用复制、分片复制、完整复制

时间:2015-06-01 18:49:26      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

Python中引用复制、分片复制、完整复制

首先直接看例子:

>>> l1=[1,2,3]
>>> l11 = l1
>>> l2=[4,5,l1]
>>> l2
[4, 5, [1, 2, 3]]
>>> l3 = l2[:]
>>> l3
[4, 5, [1, 2, 3]]
>>> import copy
>>> l4 = copy.deepcopy(l2)
>>> l4
[4, 5, [1, 2, 3]]
>>> l2[1] = 6
>>> l2
[4, 6, [1, 2, 3]]
>>> l3
[4, 5, [1, 2, 3]]
>>> l4
[4, 5, [1, 2, 3]]
>>> l1[0] = 7
>>> l1
[7, 2, 3]
>>> l11
[7, 2, 3]
>>> l2
[4, 6, [7, 2, 3]]
>>> l3
[4, 5, [7, 2, 3]]
>>> l4
[4, 5, [1, 2, 3]]

说明:

  1. 使用共享对象应用的方式来复制,只会给现存的对象添加一个新的引用,并不会在内存中生成新的对象(看l11和l1的对比)。
  2. 使用分片的方法来复制列表等序列类型,只会复制当前序列的内容,不会复制序列内的数据结构(看l1、l2、l3的对比)。
  3. 字典拥有copy方法也可以进行复制,不过局限性同2。
  4. copy标准模板库能够生成完整的拷贝,消除上一条中不能复制序列内数据结构的问题(看l3和l4值的对比)。
  5. 2和3叫做顶层复制,无法复制嵌套的数据结构。

Python中引用复制、分片复制、完整复制

标签:

原文地址:http://blog.csdn.net/u012123160/article/details/46313819

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