直接赋值:其实就是对象的引用,存储的是父对象的一个内存地址,相当于给对象起了一个别名。属于浅拷贝
浅拷贝(copy):虽然内存地址与父对象不一致,但是还是浅拷贝,只拷贝父对象,父对象内部的子对象不发生改变,例如多维数组,外部元素发生变化,但是数组内子数组的元素不发生变化。
深拷贝:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
import copy
l = [1,1,2,3,4,5,6,7,8,[1,2,3]]
#浅拷贝和深拷贝
# l2 = l #浅拷贝,内存地址不变,内存地址变了的也不一定就是深拷贝
# l2 = l.copy()#浅拷贝
#l2 = copy.copy(l)#浅拷贝
#l2 = l[:] #浅拷贝
l2 = copy.deepcopy(l) #深拷贝
l2[-1][1]="zengruotian"
print(l)
print(l2)
#循环删list
# l2 = [1,1,2,3,4,5,6,7,8]
# 0 1 2 3 4 5 6 7 8
# for i in l2:
# if i %2 != 0:
# l.remove(i)
#
# print(l)
#正在循环的list,删里面的元素会导致下标错乱,取值有误
#1 /2