深拷贝和浅拷贝图解,深拷贝和浅拷贝的方法

首页 > 经验 > 作者:YD1662022-10-24 22:21:57

例3

深拷贝和浅拷贝图解,深拷贝和浅拷贝的方法(5)

小结:

浅copy:会在内存中新开辟一个空间,存放这个copy的列表,但是列表里面的内容还是沿用之前对象的内存地址。

  1. 深copy

import copyl1 = [1, 2, 3, [22, 33]]l2 = copy.deepcopy(l1)l1.append(666)print(l1) # [1, 2, 3, [22, 33], 666]print(l2) # [1, 2, 3, [22, 33]]

图解:

本质如下图:

深拷贝和浅拷贝图解,深拷贝和浅拷贝的方法(6)

但是python对深copy做了一个优化,将可变的数据类型在内存中重新创建一份,而不可变的数据类型则沿用之前的,所以内存中是下面这样的:

深拷贝和浅拷贝图解,深拷贝和浅拷贝的方法(7)

小结:

深copy:会在内存中开辟新空间,将原列表以及列表里面的可变数据类型重新创建一份,不可变数据类型则沿用之前的。

为什么Python默认的拷贝方式是浅拷贝?

总结:

,
上一页12末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.