提问者这么短的描述,有点无法看懂,那就按照通常的几种方法来说吧:
-
简单列表的拷贝
已知一个列表,求生成一个新的列表,列表元素是原列表的复制
a=[1,2]
b=a这种其实并未真正生成一个新的列表,b指向的仍然是a所指向的对象。
后果:如果对a或b的元素进行修改,a,b的值同时发生变化。
可以使用以下方法解决:
a=[1,2]
b=a[:]这样修改a对b没有影响。修改b对a没有影响。
-
复杂列表的拷贝:
可以使用copy模块中的deepcopy函数。修改测试如下:
import copy
a=[1,[2]]
b=copy.deepcopy(a)
code:
>>> a=[1,[2]]
>>> a
[1, [2]]
>>> a[:]
[1, [2]]
>>> b=a[:]
>>> b
[1, [2]]
>>> a
[1, [2]]
>>> b[1][0]=4
>>> b
[1, [4]]
>>> a
[1, [4]]