Python中浅拷贝的三种实现形式
1、打开电脑运行,输入‘cmd’进入命令行窗口,输入‘python’
2、定义a列表,通过工厂模式浅拷贝b列表,代码如下:
>>> a=[1,2,[1,2]]
>>> b=list(a)
>>> [x for x in a]
[1, 2, [1, 2]]
>>> [x for x in b]
[1, 2, [1, 2]]
>>> [id(x) for x in a]
[1575119888, 1575119920, 38676616]
>>> [id(x) for x in b]
[1575119888, 1575119920, 38676616]
>>>
3、通过赋值或切片方式:
>>> c = a 或 c=a[:]或c=[i for i in a]
>>> [id(x) for x in a]
[1575119888, 1575119920, 38676616]
>>> [id(x) for x in c]
[1575119888, 1575119920, 38676616]
>>>
4、通过copy函数,代码如下:
>>> import copy
>>> d = copy.copy(a)
>>> [id(x) for x in a]
[1575119888, 1575119920, 38676616]
>>> [id(x) for x in d]
[1575119888, 1575119920, 38676616]
>>>
5、以上就是三种浅拷贝的方法,增加一个嵌套列表中的元素,会影响两个。
>>> a[2].append(3)
>>> a
[1, 2, [1, 2, 3]]
>>> b
[1, 2, [1, 2, 3]]
>>>
6、改变外层列表只影响自己,代码如下:
>>> a.append(4)
>>> a
[1, 2, [1, 2, 3], 4]
>>> b
[1, 2, [1, 2, 3]]
>>>