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