Python中浅拷贝的三种实现形式

2025-10-09 17:58:51

1、打开电脑运行,输入‘cmd’进入命令行窗口,输入‘python’

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]

>>>

Python中浅拷贝的三种实现形式

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]

>>>

Python中浅拷贝的三种实现形式

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]

>>>

Python中浅拷贝的三种实现形式

5、以上就是三种浅拷贝的方法,增加一个嵌套列表中的元素,会影响两个。

>>> a[2].append(3)

>>> a

[1, 2, [1, 2, 3]]

>>> b

[1, 2, [1, 2, 3]]

>>>

Python中浅拷贝的三种实现形式

6、改变外层列表只影响自己,代码如下:

>>> a.append(4)

>>> a

[1, 2, [1, 2, 3], 4]

>>> b

[1, 2, [1, 2, 3]]

>>>

Python中浅拷贝的三种实现形式

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢