python中的赋值操作和复制操作

之前一直写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]
posted @ 2022-10-07 20:31  I'm_江河湖海  阅读(6)  评论(0)    收藏  举报