之前一直写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实现
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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]