如何在Python中克隆或复制列表?

如何在Python中克隆或复制列表?

在Python中,赋值操作符并不创建一个新的对象,而是给已经存在的对象取了一个别名。可以通过id()函数来验证这一点。

>>> L1 = [1,2,3,4]
>>> L2 = L1
>>> id(L1)
185117137928
>>> id(L2)
185117137928

为了真正地复制一个列表,可以使用以下方法。

切片操作符:切片操作符的两个操作数是切片的起始索引和结束索引。如果没有显式使用,则两者都默认为序列的起止位置。我们可以利用这个功能。

>>> L1 = [1,2,3,4]
>>> L2 = L1[:]
>>> L1
[1, 2, 3, 4]
>>> L2
[1, 2, 3, 4]
>>> id(L1)
185117025160
>>> id(L2)
185117171592

另一种方法是使用内置的list()方法。

>>> L1 =[ 1,2,3,4]
>>> L2 = list(L1)
>>> L1
[1, 2, 3, 4]
>>> L2
[1, 2, 3, 4]
>>> id(L1)
185117295816
>>> id(L2)
185117209352

Python标准库的copy模块包含了用于浅拷贝和深拷贝对象的函数。深拷贝是嵌套拷贝,浅拷贝中,内部列表只被引用复制。

>>> import copy
>>> L1 = [1,2,3,4]
>>> L2 = copy.copy(L1)
>>> L1
[1, 2, 3, 4]
>>> L2
[1, 2, 3, 4]
>>> id(L1)
185117025160
>>> id(L2)
185117295880
>>> L3=copy.deepcopy(L1)
>>> L3
[1, 2, 3, 4]
>>> id(L3)
185117304328

阅读更多:Python 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程