对于嵌套列表的复制会涉及到深复制和浅复制
浅复制:只复制最外侧的容器(列表),容器内的列表使用(复制)原容器的引用;浅复制是默认行为。
In [2]: a = [1,[2,3]]
In [3]: b = a[:]
In [4]: b is a
Out[4]: False
In [5]: b == a
Out[5]: True
In [6]: a[1] is b[1]
Out[6]: True
http://www.pythontutor.com是一个python可视化站点,可以看到代码交互式动画
深复制:副本不共享内部对象引用,而是独立开辟内存空间
In [7]: from copy import deepcopy
In [8]: a = [1,[2,3],[4,5]]
In [9]: b = deepcopy(a)
In [10]: a is b
Out[10]: False
In [11]: a[1] is b[1]
Out[11]: False