python:复制与引用、浅拷贝与深拷贝

发布时间:2019-06-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了python:复制与引用、浅拷贝与深拷贝脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1 python语言哲学:赋值语句,都是引用。

# 将a赋值给b,改变a的第一个元素,b的第一个元素随之改变

a = [1, 2, 3]
b = a
PRint(b) #[1, 2, 3]

a[0] = 0
print(a) #[0, 2, 3]
b #[0, 2, 3]

2 想a和b互不干扰怎么办?拷贝啊!

# 2.1 浅拷贝 切片 [::] [开始:结束:步进]

a = [1, 2, 3]
b = a[::] # 这里就是复制了一份a
print(b) #[1, 2, 3]

a[0] = 0
print(a) [0, 2, 3]
print(b) [1, 2, 3]

# 问题:b = a[::]只是表层拷贝,里面的列表只是复制了一个引用出来,这两个引用指向的地址是一样的,改了其中一个,当然另一个也跟着变了

a = [0, [1, 2], 3]
b = a[::]
a #[0, [1, 2], 3]
b #[0, [1, 2], 3]
a[0] = 1
a #[1, [1, 2], 3]
b #[0, [1, 2], 3]
a[1][0] = 0
a #[1, [0, 2], 3]
b #[0, [0, 2], 3]

# 2.2 深拷贝

import copy
b = copy.deepcopy(a)
b = copy.copy(a) #此为浅拷贝

脚本宝典总结

以上是脚本宝典为你收集整理的python:复制与引用、浅拷贝与深拷贝全部内容,希望文章能够帮你解决python:复制与引用、浅拷贝与深拷贝所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。