我需要一些帮助来理解这段代码:
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
起作用。
关于python - 我怎样才能根据值(value)而不是内存使 x=y ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756970/