python 中copy 和 deepcopy的理解

谁说胖子不能爱 提交于 2019-11-28 18:10:39

在python中数组的储存方式和其他类似整形,浮点型的方式是不一样的,可以说数组是一种容器类型。这就导致了copy和deepcopy在数组中的不同。

import copy

a = [1,2,[1,2]]
b = copy.copy(a)
c = copy.deepcopy(a)

a[0] = 4
#b和c无变化

a[2] [1] = 4
#b有变化,c无变化

#在copy中只有数组内的方式变化时copy才会变化

  

而不使用copy,直接在数组中改变内容

a = [1,2,3]
b = a
c = a[:]

a[0] = 0
#b有变化,c无变化

a = [1,2,3]
#都无变化

  

当数组a内容单个变化时,b也会变化,因为b和a此时就是同一个物品的不同标签而已。

但当将标签a放到另一个物品上时,b是没有变化的

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!