本文主要是介绍Python中引用复制、分片复制、完整复制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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]]
说明:
- 使用共享对象应用的方式来复制,只会给现存的对象添加一个新的引用,并不会在内存中生成新的对象(看l11和l1的对比)。
- 使用分片的方法来复制列表等序列类型,只会复制当前序列的内容,不会复制序列内的数据结构(看l1、l2、l3的对比)。
- 字典拥有copy方法也可以进行复制,不过局限性同2。
- copy标准模板库能够生成完整的拷贝,消除上一条中不能复制序列内数据结构的问题(看l3和l4值的对比)。
- 2和3叫做顶层复制,无法复制嵌套的数据结构。
这篇关于Python中引用复制、分片复制、完整复制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!