在Python中,copy的是内存地址,引用的是列表的引用地址,列表里存的是各个元素的地址
例如:
name = [1,2,3,4,['xfxing','summer',6]]
n2 = name.copy()
name[1] = -2
name[4][0] = "shell"
name[4][2] =-6
print(name)
print(n2)
结果为:
name = [1,2,3,4,['xfxing','summer',6]]
n2 = name.copy() copy的是name中列表的内存地址
name[1] = -2 内存里开辟一个新空间给-2
name[4][0] = "shell" 列表里开辟一个新的空间存放shell,并把它给到name[4][0]
name[4][2] =-6 列表里开辟一个新的空间存放-6,并把它给到name[4][1]
print(name)
print(n2) 2不会被垃圾回收器回收,n2中copy的内存地址会继续使用
通过id()可以查看它们的内存地址
列表中的元素地址没变,列表中的内存地址也不会发生改变
(如 id(name[3] id(n2[3]))
列表中的元素地址发生改变,列表的内存地址也将改变
(如 id(name[1] id(n2[1]))