之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值。但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间。下面通过一个例子说明:
p=[0,1,2,3,4] q=p print(p) print(q) q.append(5) print(q) print(p)
#输出 [0, 1, 2, 3, 4] [0, 1, 2, 3, 4] [0, 1, 2, 3, 4, 5] [0, 1, 2, 3, 4, 5]
发现改变q的值,p也同时改变。
如果要向C#中一样拷贝变量可以通过copy实现
import copy p=[0,1,2,3,4] q=copy.copy(p) q.append(5) print(q) print(p)
输出
[0, 1, 2, 3, 4, 5] [0, 1, 2, 3, 4]