我需要一些帮助来理解这段代码:
x = [1,2,3]
y = [4,5,6]
x = y
print x
print y
y.remove(4)
print x
print y
Run Code Online (Sandbox Code Playgroud)
当我4从列表中删除时[4,5,6],x和y变量都指向[5,6]内存中的相同列表我是对的吗?
如果是这样,那么我如何才能使列表x的副本等于并且两者都指向内存中的不同位置,但这些位置都保持相同的值?(与他们相反,他们都指向内存中的相同位置,如上所示)yxy
特别是对于列表,您可以通过获取整个列表的一部分来制作浅表副本:
x = y[:]
Run Code Online (Sandbox Code Playgroud)
这不能保证适用于任意可切片对象(例如,numpy数组切片不会创建新数组),因此使用内置copy模块会很有用:
import copy
x = copy.copy(y)
Run Code Online (Sandbox Code Playgroud)
可以期待为仲裁工作y.
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |