网站制作学习网Python→正文:python 浅拷贝 深拷贝
字体:

python 浅拷贝 深拷贝

Python 2024/6/5 9:30:41  点击:不统计

http://www.forasp.cn/
 # 浅拷贝, 只复制第一层地址,内部元素作为不可变数据,不会开辟新空间。当内部是可变数据时,指向同一个空间地址,修改会同时更新

source = {"a": "a", "C": [1, 2, 3]}
copy_source = source.copy()

print(source)  # 结果 {'a': 'a', 'C': [1, 2, 3]}
print(copy_source)  # 结果 {'a': 'a', 'C': [1, 2, 3]}
print("修改source key 为a 的值为 A")
copy_source["a"] = "A"
print(source)  # 结果 {'a': 'a', 'C': [1, 2, 3]}
print(copy_source)  # 结果 {'a': 'A', 'C': [1, 2, 3]} 复制只复制了第一层,开辟了新空间会更新
print("修改source key 为C 的值为 增加 4 ")
source["C"].append(4)  # 子元素作为可变数据,copy 只复制了第一层的地址,后面修改都会修改
print(source)  # 结果 {'a': 'A', 'C': [1, 2, 3, 4]}
print(copy_source)  # 结果:{'a': 'a', 'C': [1, 2, 3, 4]}
print("修改source key 为C 的值为 增加 new C ")
source["C"] = 'new C'
print(source)  # 结果 {'a': 'a', 'C': 'new C'}  更改 源source 或者 复制的 第一层数据都会改变
print(copy_source)  # 结果: {'a': 'A', 'C': [1, 2, 3, 4]}
# list 的copy 与上面的dict 操作一致
list_source = [1, 2, 3, []]
list_copy = list_source[:]  # list 另一种浅拷贝的写法
print(list_source)  # 输出 [1, 2, 3, []]
print(list_copy)  # 输出 [1, 2, 3, []]
print("list_source 增加元素 5 ")
list_source.append(5)
print(list_source)  # 输出 [1, 2, 3, [], 5]
print(list_copy)  # 输出 [1, 2, 3, []]
print("list_source 第四个 动态增加元素 4 ")
list_source[3].append(4)
print(list_source)  # 输出 [1, 2, 3, [4], 5]
print(list_copy)  # 输出 [1, 2, 3, [4]]


# 深拷贝 不管拷贝多少层,不可变数据类型公用的一个公共空间,可变数据类型开辟新的空间
import copy

source = {"a": "a", "C": [1, 2, 3]}
copy_source = copy.deepcopy(source)
print("深度拷贝")
print(source)  # 结果 {'a': 'a', 'C': [1, 2, 3]}
print(copy_source)  # 结果 {'a': 'a', 'C': [1, 2, 3]}
print("修改source key 为a 的值为 A")
copy_source["a"] = "A"
print(source)  # 结果 {'a': 'a', 'C': [1, 2, 3]} # 当公共值修改为不同值,则需要独立开辟空间
print(copy_source)  # 结果 {'a': 'A', 'C': [1, 2, 3]}
print("修改 copy_source key 为C 的值为 增加 4 ")
copy_source["C"].append(4)
print(source)  # 结果 {'a': 'a', 'C': [1, 2, 3]}
print(copy_source)  # 结果:{'a': 'A', 'C': [1, 2, 3, 4]}

# 在深拷贝中dict 和list 操作一致的

网站制作学习网Foasp.cn

·上一篇:python redis 连接池 >>    ·下一篇:python 多重继承 super的运行顺序 >>
推荐文章
最新文章