如何简单区分Python中的深拷贝与浅拷贝?
- 内容介绍
- 文章标签
- 相关推荐
本文共计825个文字,预计阅读时间需要4分钟。
一、浅拷贝与深拷贝浅拷贝与深拷贝是Python中处理列表拷贝时常用的概念。
浅拷贝(Shallow Copy):- 创建一个新的列表对象。- 将原列表中的元素(如果是可变对象,如列表)的引用复制到新列表中。
深拷贝(Deep Copy):- 创建一个新的列表对象。- 递归地复制原列表中的所有元素,包括嵌套的可变对象。
以下是一个浅拷贝和深拷贝的示例代码:
pythonl1=[1, 2, 3, [22, 33]]l2=l1.copy() # 浅拷贝l1.append(666)print(l1) # 输出: [1, 2, 3, [22, 33], 666]print(l2) # 输出: [1, 2, 3, [22, 33]]
在这个例子中,`l2` 是通过 `l1.copy()` 创建的浅拷贝。当我们在 `l1` 中添加元素 `666` 后,`l2` 中的内容没有变化,因为它们共享同一个内部列表 `[22, 33]` 的引用。
本文共计825个文字,预计阅读时间需要4分钟。
一、浅拷贝与深拷贝浅拷贝与深拷贝是Python中处理列表拷贝时常用的概念。
浅拷贝(Shallow Copy):- 创建一个新的列表对象。- 将原列表中的元素(如果是可变对象,如列表)的引用复制到新列表中。
深拷贝(Deep Copy):- 创建一个新的列表对象。- 递归地复制原列表中的所有元素,包括嵌套的可变对象。
以下是一个浅拷贝和深拷贝的示例代码:
pythonl1=[1, 2, 3, [22, 33]]l2=l1.copy() # 浅拷贝l1.append(666)print(l1) # 输出: [1, 2, 3, [22, 33], 666]print(l2) # 输出: [1, 2, 3, [22, 33]]
在这个例子中,`l2` 是通过 `l1.copy()` 创建的浅拷贝。当我们在 `l1` 中添加元素 `666` 后,`l2` 中的内容没有变化,因为它们共享同一个内部列表 `[22, 33]` 的引用。

