正在更改原始列表时,克隆列表会被更改

时间:2013-10-12 15:10:35

标签: python list

以下是代码:

def Class(clas12):
inputData = ''.join(clas12.readlines())
line=inputData.split('\n')
line2=[]
for a in line:
    b=a.split(' ')
    line2.append(b)
return line2

clas12=open('class12.txt','r')

Class12=Class(clas12)
Class13=list(Class12)

当我改变Class12(例如.remove,。appel)时,相同的更改将应用​​于Class13。这令人沮丧,因为我需要另一个功能的原始列表。有没有办法保留原始列表或复制它以便不会被更改?

1 个答案:

答案 0 :(得分:0)

默认情况下,python使用引用而不是副本,使用更快的内存效率更快 - 如果您需要一个可以在不更改原始内容的情况下进行更改的副本:

import copy

def Class(clas12):
inputData = ''.join(clas12.readlines())
line=inputData.split('\n')
line2=[]
for a in line:
    b=a.split(' ')
    line2.append(b)
return line2

clas12=open('class12.txt','r')

Class12=Class(clas12)
Class13=copy.deepcopy(Class12)