a = b正常赋值是索引同一个内存地址,实际上,赋值是引用,引用了这个地址。
实质上,a 就是b 了,对于a的任何操作都会作用到b 上
b=copy.copy(a)是浅复制,对于第一层是不同的内存地址,对于第二层是相同的内存地址
eg:a = [1,2,[3,4]]
b = copy.copy(a)
其中,a[3] 和b[3]的地址会一样,但[1][2]是不同的地址。
如果是deepcopy的话,所有层地址都会不同。
对于可变类型的变量,如列表字典还有Numpy中的建立的数组,python使用引用。
对于不可变类型的变量,如字符串、整数、元组,python变量就保存值本身,并非引用。