代码改变世界

python 中copy 和 deepcopy的理解

2019-08-27 15:22  Xiao_Chen  阅读(644)  评论(0编辑  收藏  举报

在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是没有变化的