我需要一些帮助来理解这段代码:
x = [1,2,3]
y = [4,5,6]
x = y
print x
print y
y.remove(4)
print x
print y
当我从列表 [4,5,6] 中删除 4 时,x 和 y 变量将指向内存中相同的 [5,6] 列表,对吗?
如果是这样,那么我怎样才能使 x 等于 y 列表的副本,以便 x 和 y两者都指向内存中的不同位置,但这些位置都具有相同的值? (与它们都指向内存中的同一个位置相反,如上所示)
请您参考如下方法:
特别是对于列表,您可以通过获取整个列表的一部分来进行浅拷贝:
x = y[:]
这不能保证适用于任意可切片对象(例如,numpy 数组切片不会创建新数组),因此使用内置的 copy 会很有用。模块:
import copy
x = copy.copy(y)
可以预期对任意 y 起作用。
