将一个列表添加到另一个列表中时,可以有以下操作:
lst1 = [1, 2, 3] lst2 = [lst1] print(lst2) # 输出为:[[1, 2, 3]] lst1[1] = 4 print(lst2) # 输出为:[[1, 4, 3]] lst3 = [] lst3.append(lst1) print(lst3) # 输出为:[[1, 4, 3]] lst1[1] = 5 print(lst3) # 输出为:[[1, 5, 3]]
其中lst2 = [lst1]与lst3.append(lst1)相同,都是浅拷贝,当原列表内容发生改变时,新列表的内容会跟着发生改变。
如果想要深拷贝,可以使用如下方法:
lst1 = [1, 2, 3] lst4 = lst1[:] print(lst4) # 输出为:[1, 2, 3] lst1[1] = 4 print(lst4) # 输出为:[1, 2, 3] lst5 = [lst1[:]] print(lst5) # 输出为:[[1, 4, 3]] lst1[1] = 5 print(lst5) # 输出为:[[1, 4, 3]] lst6 = [] import copy lst6.append(copy.deepcopy(lst1)) print(lst6) # 输出为:[[1, 5, 3]] lst1[1] = 6 print(lst6) # 输出为:[[1, 5, 3]]