Python中的浅拷贝与深拷贝

Python中值的拷贝可分为直接赋值,浅拷贝与深拷贝

直接赋值:即为对象的引用,赋值前后的对象均指向同一对象

浅拷贝:拷贝父对象,拷贝前与拷贝后的对象均为独立的对象,但是他们的子对象都仍然指向同一对象

深拷贝:完全拷贝父对象及子对象,拷贝前与拷贝后的对象均独立存在

演示代码如下

import copy

a = [1, 2, 3, [4, 5, 6]]
b = a  # 对象的引用
c = a.copy()  # 浅拷贝
d = copy.deepcopy(a)  # 深拷贝

# 改变列表a
a.append(8)
a[3].append(7)

print(f"a: {a}")
print(f"b: {b}")
print(f"c: {c}")
print(f"d: {d}")

# >>>
#    a: [1, 2, 3, [4, 5, 6, 7], 8]
#    b: [1, 2, 3, [4, 5, 6, 7], 8]
#    c: [1, 2, 3, [4, 5, 6, 7]]
#    d: [1, 2, 3, [4, 5, 6]]
posted @ 2024-06-11 11:08  絵守辛玥  阅读(23)  评论(0)    收藏  举报