浅拷贝
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。大白话就是,只copy一层,再深一层没copy还是指向同一对象(地址)。
>>>a = [[1], 2, 3]>>> b = a.copy()>>> a, b([[1], 2, 3], [[1], 2, 3])>>> a.append(4)>>> a, b([[1], 2, 3, 4], [[1], 2, 3])>>> a[0].append(4)>>> a, b([[1, 4], 2, 3, 4], [[1, 4], 2, 3])
浅拷贝有三种形式:切片操作,工厂函数,copy模块中的copy函数。
#切片操作属于浅拷贝,所以我们在初始化列表时,一维列表可以采用此种方式初始化,而二维列表就不可以了!lst1 = lst[:]lst1 = [each for each in lst]#工厂函数lst1 = list(lst)#copy()函数如上所示
深拷贝
深度拷贝需要引入 copy 模块:
>>>import copy>>>a = [[1], 2, 3]>>> b = copy.deepcopy(a)>>> a, b([[1], 2, 3], [[1], 2, 3])>>> a.append(4)>>> a, b([[1], 2, 3, 4], [[1], 2, 3])>>> a[0].append(4)>>> a, b([[1, 4], 2, 3, 4], [[1], 2, 3])
赋值
总结



