1、对于简单的列表,也就是列表中都是基本的元素,可以使用如下的方法:
a=[1,2] b=a[:] print(b)结果:[1, 2]
2、但是如果列表中仍然包含列表,这种方法就不合适,原因就是,对于a[:]这种处理,只是将列 表元素的值生成一个新的列表,如果列表元素也是一个列表,如:a=[1,[2]],那么这种复制对于元素[2]的处理只是复制[2]的引用,而并未生成 [2]的一个新的列表复制。为了证明这一点,测试步骤如下:
a=[2,[3]] b=a[:] a[1].append(4) print(a) print(b)结果:
[2, [3, 4]]
[2, [3, 4]]
说明这种复制方法对于复杂的列表不适用。
2、复杂列表可以使用copy模块中的deepcopy函数。
修改函数如下;
import copy a=[2,[3]] b=copy.deepcopy(a) a[1].append(4) print(a) print(b)
结果:[2, [3, 4]] [2, [3]]
说明完全复制过来了,对a的操作,对b无任何影响